almin
v0.19.0
Published
Client-side DDD/CQRS for JavaScript.
Downloads
606
Maintainers
Readme
Almin
Installation
npm install almin
You'll also need a Promise polyfill for older browsers.
npm install es6-promise
Usage
:memo: Please See https://almin.js.org/ for details.
- :book: Documentation of Almin
- https://almin.js.org/
What is Almin?
Almin provides Flux/CQRS patterns for JavaScript applications.
It aims to create a scalable app.
The above figure is overview of Almin architecture that is similar to CQRS(Command Query Responsibility Segregation).
But, Almin is not a framework, provides only these components
- Dispatcher
- Context
- UseCase
- Store
- StoreGroup
Other components like Domain, Repository and State are written by you!
Of course, Almin help you to write other components.
Also, You may notice that these components are similar to Flux architecture.
Almin is also a flux implementation library. :thumbsup:
| Almin | Flux | Redux | |------------|---------------|------------------------| | Dispatcher | Dispatcher | store.dispatch | | Context | Container | Middleware/React Redux | | UseCase | ActionCreator | Actions | | Store | Store | Store | | StoreGroup | Container | combineReducers | | (State) | Store | Reducer | | (Domain) | | | |(Repository)| | |
:memo: State
, Domain
and Repository
is optional on Almin,
because the best for these components is vary based on application.
Almin has not a perfect solution for an application, but we can write code thinking.
We are going to learn two architectures(Flux/CQRS) using Almin :)
Running tests
Run tests in Node.js
npm test
Run tests in Browser
npm run test:browser
Run tests in Sauce Labs
# Need "~/.zuulrc" for using Sauce Labs
npm run test:saucelabs
Contributing
Please see CONTRIBUTING.md for more details.
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request :D
License
MIT