Lightweight Domain Driven Design (DDD) / CQRS / Event Sourcing Typescript library for Node.js
Domain Driven Design (DDD) / CQRS / Event Sourcing library for Typescript.
Domain Driven Design (DDD) is a software development methodology that focuses on the core logic of a software system. It is a way of thinking about software design that emphasizes the core domain and domain logic over technical infrastructure and implementation details.
Command/Query Responsibility Segregation (CQRS) is a pattern that separates read and write application services and models for a data store.
Event Sourcing (ES) is a pattern that stores all changes to application state as a sequence of events, which can then be used to reconstruct the current state of the domain models.
Patterns and practices of DDD / CQRS / ES implemented in this library:
- Value Object
- Entity
- Aggregate Root
- Domain Event
- Domain Service
- Repository
- Command Bus
- Command Handler
- Query Bus
- Query Handler
- Event Bus
- Event Handler
There are working examples in the apps/example
folder.
Lightweight Dependency Injection / Inversion of Control library for Javascript/Typescript built on top of tysringe