All Projects → almin → Almin

almin / Almin

Licence: mit
Client-side DDD/CQRS for JavaScript.

Programming Languages

javascript
184084 projects - #8 most used programming language
typescript
32286 projects

Projects that are alternatives of or similar to Almin

Qframework
Unity3D System Design Architecture
Stars: ✭ 2,326 (+387.63%)
Mutual labels:  framework, flux, cqrs, ddd
Stove
Domain Driven Design oriented application framework, meets CRUD needs
Stars: ✭ 160 (-66.46%)
Mutual labels:  framework, ddd, cqrs
Goes
Go Event Sourcing made easy
Stars: ✭ 144 (-69.81%)
Mutual labels:  ddd, cqrs, flux
Eventflow
Async/await first CQRS+ES and DDD framework for .NET
Stars: ✭ 1,932 (+305.03%)
Mutual labels:  framework, ddd, cqrs
Revo
Event Sourcing, CQRS and DDD framework for C#/.NET Core.
Stars: ✭ 162 (-66.04%)
Mutual labels:  framework, ddd, cqrs
Akka Ddd
Akka CQRS/ES framework
Stars: ✭ 330 (-30.82%)
Mutual labels:  ddd, cqrs
Towel
Throw in the towel.
Stars: ✭ 333 (-30.19%)
Mutual labels:  framework, library
Eventhus
Go - CQRS / Event Sourcing made easy - Go
Stars: ✭ 350 (-26.62%)
Mutual labels:  framework, cqrs
Go Api Boilerplate
Go Server/API boilerplate using best practices DDD CQRS ES gRPC
Stars: ✭ 373 (-21.8%)
Mutual labels:  ddd, cqrs
Framework7
Full featured HTML framework for building iOS & Android apps
Stars: ✭ 16,560 (+3371.7%)
Mutual labels:  framework, library
Distortos
object-oriented C++ RTOS for microcontrollers
Stars: ✭ 354 (-25.79%)
Mutual labels:  framework, library
All Things Cqrs
Comprehensive guide to a couple of possible ways of synchronizing two states with Spring tools. Synchronization is shown by separating command and queries in a simple CQRS application.
Stars: ✭ 474 (-0.63%)
Mutual labels:  ddd, cqrs
Spring Data Cassandra
Provides support to increase developer productivity in Java when using Apache Cassandra. Uses familiar Spring concepts such as a template classes for core API usage and lightweight repository style data access.
Stars: ✭ 315 (-33.96%)
Mutual labels:  framework, ddd
Hexagonal Architecture Acerola
An Hexagonal Architecture service template with DDD, CQRS, TDD and SOLID using .NET Core 2.0. All small features are testable and could be mocked. Adapters could be mocked or exchanged.
Stars: ✭ 293 (-38.57%)
Mutual labels:  ddd, cqrs
Promises
Promises is a modern framework that provides a synchronization construct for Swift and Objective-C.
Stars: ✭ 3,576 (+649.69%)
Mutual labels:  framework, library
Spruce Ios
Swift library for choreographing animations on the screen.
Stars: ✭ 3,249 (+581.13%)
Mutual labels:  framework, library
Ddd Leaven Akka V2
Sample e-commerce system #Microservices #Akka #Reactive-DDD #CQRS
Stars: ✭ 362 (-24.11%)
Mutual labels:  ddd, cqrs
Vugu
Vugu: A modern UI library for Go+WebAssembly (experimental)
Stars: ✭ 4,251 (+791.19%)
Mutual labels:  framework, library
Shadowview
An iOS Library that makes shadows management easy on UIView.
Stars: ✭ 391 (-18.03%)
Mutual labels:  framework, library
Viper
Viper 是一个基于Anno微服务引擎开发的Dashboard项目、示例项目。Anno 底层通讯采用 grpc、thrift。自带服务发现、调用链追踪、Cron 调度、限流、事件总线等等
Stars: ✭ 402 (-15.72%)
Mutual labels:  ddd, cqrs

Almin.js Build Status

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 the Missing 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
  • Support TypeScript and Flow

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 for older browsers.

npm install es6-promise

Documentation

📝 Please See https://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 to Flux architecture.

Almin is also a flux implementation library. 👍

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)

📝 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 :)

Real Examples

Welcome to pull request!

Presentations

Packages

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

Core

Package Version Description
almin npm almin itself

Integrations

Package Version Description
almin-react-container npm Integration with React

Utilities

Package Version Description
almin-logger npm console logger
almin-devtools npm browser debugging extension

Contributing

Please see CONTRIBUTING.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
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].