> For the complete documentation index, see [llms.txt](https://docs.reactium.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.reactium.io/reactium/domain.md).

# Reactium Domain Model

## Basic Artifacts

Reactium comes with some powerful capabilities with these basic artifacts. The power to route, style, and integrate with other parts of your application. See [Basic Domain Model](/reactium/domain/basic-domain-model.md) for more details.

Much of the boilerplate of the some of these important artifacts can be create with arcli:

```bash
arcli component
```

| File                                                                                                           | Description                                                                                                |
| -------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
| [**route.js**](https://docs.reactium.io/reactium/pages/HYFEMg0Q0BDsx6NRDRh2#route.js)                          | Route configuration file, creating one or more React Router routes.                                        |
| [**index.js**](https://docs.reactium.io/reactium/pages/HYFEMg0Q0BDsx6NRDRh2#index.js)                          | Main component file                                                                                        |
| [**\_reactium-style.scss**](https://docs.reactium.io/reactium/pages/HYFEMg0Q0BDsx6NRDRh2#_reactium-style.scss) | Sass styles                                                                                                |
| [**reactium-hooks.js**](https://docs.reactium.io/reactium/pages/HYFEMg0Q0BDsx6NRDRh2#reactium-hooks.js)        | Reactium isomorphic plugin bind point that run at the file scope on app bootstrap.                         |
| [**domain.js**](https://docs.reactium.io/reactium/pages/HYFEMg0Q0BDsx6NRDRh2#domain.js)                        | Domain configuration file. Used to help group functions to your domain.                                    |
| [**services.js**](https://docs.reactium.io/reactium/pages/HYFEMg0Q0BDsx6NRDRh2#services.js)                    | Utility functions and AJAX requests                                                                        |
| [**reactium-boot.js**](https://docs.reactium.io/reactium/pages/HYFEMg0Q0BDsx6NRDRh2#reactium-boot.js)          | Reactium node/express (back-end only) plugin bind point that run at server startup                         |
| [**test.js**](https://docs.reactium.io/reactium/pages/HYFEMg0Q0BDsx6NRDRh2#test.js)                            | [**Jest**](https://www.npmjs.com/package/jest)**/**[**Enzyme**](https://www.npmjs.com/package/enzyme) test |

## Redux Artifacts

The **@atomic-reactor/reactium-redux** plugin automatically adds the following discoverable Redux-specific DDD artifacts to your application manifest. See [Redux Domain Model](broken://pages/PT91sk5QgfqyEy97VccA) for more details.

| Redux Artifacts                                                                                   | Description          |
| ------------------------------------------------------------------------------------------------- | -------------------- |
| [**actions.js**](https://docs.reactium.io/reactium/pages/PT91sk5QgfqyEy97VccA#actions.js)         | Redux actions        |
| [**actionTypes.js**](https://docs.reactium.io/reactium/pages/PT91sk5QgfqyEy97VccA#actiontypes.js) | Redux actionTypes    |
| [**reducers.js**](https://docs.reactium.io/reactium/pages/PT91sk5QgfqyEy97VccA#reducers.js)       | Redux reducers       |
| [**state.js**](https://docs.reactium.io/reactium/pages/PT91sk5QgfqyEy97VccA#state.js)             | Redux default state  |
| [**middleware.js**](https://docs.reactium.io/reactium/pages/PT91sk5QgfqyEy97VccA#middleware.js)   | Redux middleware     |
| [**enhancer.js**](https://docs.reactium.io/reactium/pages/PT91sk5QgfqyEy97VccA#enhancer.js)       | Redux store enhancer |

## Runtime Artifacts

Reactium comes with built-in capability to generate run-time modules that can be loaded in your applications. The Reactium opinion makes it easy for your applications to be naturally extended. See [Runtime Domain Model](/reactium/domain/runtime-domain-model.md) for more details.

| File                                                                                                | Description                                                                                                                                                              |
| --------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [**umd.js**](https://docs.reactium.io/reactium/pages/cKgvYUNA5ZyqXTnuNyWp#umd.js)                   | Automatically creates entry point for a new UMD (Universal Module Definition) bundle, useful for service workers and runtime plugins.                                    |
| [**umd-config.json**](https://docs.reactium.io/reactium/pages/cKgvYUNA5ZyqXTnuNyWp#umd-config.json) | When found in a directory containing a **umd.js** UMD (Universal Module Definition) entry point, will be used to generate the manifest configuration for the UMD module. |

## Build Artifacts

If you wish to use the Reactium SDK and hooks system to change the behavior of Gulp tasks or Webpack compilation for your plugin, you can use build-time DDD artifacts to register your behaviors. See [Buildtime Domain Model](/reactium/domain/buildtime-domain-model.md) for more details.

| Build Config Artifacts                                                                                      | Description                                                      |
| ----------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------- |
| [**reactium-gulp.js**](https://docs.reactium.io/reactium/pages/hRde7H32F95HIdkL0Xds#reactium-gulp.js)       | Used to register/unregister gulp tasks for the build.            |
| [**reactium-webpack.js**](https://docs.reactium.io/reactium/pages/hRde7H32F95HIdkL0Xds#reactium-webpack.js) | Used to register/unregister webpack configuration for the build. |
