Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Client-side DDD/CQRS for JavaScript.

License

NotificationsYou must be signed in to change notification settings

almin/almin

Repository files navigation

Almin.js logo

Sauce Test Status

Flux/CQRS patterns for JavaScript application.

Write code thinking :)

Why?

Now, We can implement web applications with Flux or Redux etc...

But, I often hear a story that "Control flow of Flux/Redux is cool, but where to implement domain logic."

I think that people skip to Flux/Redux from MV* pattern.

MV* --> ( Missing things ) --> Flux/Redux(CQRS+EventSourcing)

Almin aim to fill theMissing things between MV* and Flux/Redux.

Features

Almin provides some patterns, is not a framework.

  • Testable
  • Scalable
  • Responsibility Layers patten - well-known as DDD(Domain-Driven Design)/CQRS
  • SupportTypeScript andFlow

Almin is an implementation of Read/Write Stack Architecture that is well-known as Flux/CQRS.

Installation

npm install almin

You'll also need a Promise polyfill forolder browsers.

npm install es6-promise

Documentation

📝 Please Seehttps://almin.js.org/ for details.

What is Almin?

Almin provides Flux/CQRS patterns for JavaScript applications.

It aims to create a scalable app.

Overview of almin-architecture

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 toFlux architecture.

Almin is also a flux implementation library. 👍

AlminFluxRedux
DispatcherDispatcherstore.dispatch
ContextContainerMiddleware/React Redux
UseCaseActionCreatorActions
StoreStoreStore
StoreGroupContainercombineReducers
(State)StoreReducer
(Domain)
(Repository)

📝State,Domain andRepository 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 :)

Real Examples

Welcome to pull request!

Presentations

Packages

The Almin repo is managed as amonorepo; it's composed of npm packages.

Core

PackageVersionDescription
alminnpmalmin itself

Integrations

PackageVersionDescription
almin-react-containernpmIntegration with React

Utilities

PackageVersionDescription
almin-loggernpmconsole logger
almin-devtoolsnpmbrowser debugging extension

Contributing

Please seeCONTRIBUTING.md for more details.

  1. Fork it!
  2. Create your feature branch:git checkout -b my-new-feature
  3. Commit your changes:git commit -am 'Add some feature'
  4. Push to the branch:git push origin my-new-feature
  5. Submit a pull request :D

License

MIT

Sponsors

Deploys by Netlify

[8]ページ先頭

©2009-2025 Movatter.jp