1.0.0-alpha.2 • Published 2 years ago
escentia v1.0.0-alpha.2
🚧 escentia 🚧
Escentia is a fully-featured library for designing rich domain models, event-driven architectures, command-query responsibility segregation, event sourcing, and sagas. It's designed to reduce the complexity of building scalable and reliable applications (especially microservices) by providing a simple and easy-to-use interface for complicated topics and architectural patterns.
Motivation
I'm pissed off on ecosystem, especially dumb fucks who made nestjs.
Planned Features
- Designing
Aggregate,EntityandValue Objectwith a easy to use abstract classes and decorators. - Complete set of
Messagedata structures such asCommand,Event,Request,Reply,Queryand more... All of them will be supported in serialization framework based on decorators (like@Serializable()). - Bare minimum message/service bus which will support different transports (Message Brokers)
EventEmitter,RabbitMQ,Kafka,NATSandSQS. - Support for long-running serivices by usage of
Workflows andSagas to build asynchronic processes at glance. - Automated discovery of message handlers by usage of decorators, like
@HandleMessage(UserCreated).
Credits
- Library uses
Option<T>andResult<T,E>fromoxide.ts.