This project provides some key block to build an architecture of bounded contexts.
Bringing quality in a software has always been one of my concerns.
Few weeks ago, I discovered Domain-Driven-Design. DDD is an approach (rather than an architecture) that helps to focus business needs.
DDD is often known to express complex business needs. It indeed helps to build and maintain very scalable architectures that are base on concepts such as : Command
, Query
, Event
, Business Rule
.
DDD also brings a quite an interesting workshop to help the understanding of business needs : the Event Storming. In practice, this workshop is held with the client (who knows perfectly his business) and with the developers. The result of this workshop gathers all Commands
, Queries
, Events
and Business Rules
representing the business.
Then Commands
, Queries
, Events
and Business Rules
are translated into executable code. The goal of this project is to provide some building blocks to manage life cycle of Commands
, Queries
and Events
in the app.
DDD brings a lot of concept to build very scalable architectures that fit well for "big" projects.
However, I think that DDD can also be used I "small" or "medium" projects that don't need to scale. DDD powerful concepts help to build a better app even if the app is small.
Inspired by the great work available here https://github.com/arpinum/alexandria-api