1.0.0-alpha.2 • Published 10 months 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
,Entity
andValue Object
with a easy to use abstract classes and decorators. - Complete set of
Message
data structures such asCommand
,Event
,Request
,Reply
,Query
and 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
,NATS
andSQS
. - Support for long-running serivices by usage of
Workflow
s andSaga
s 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
.