Χάρτης Αρχιτεκτονικής
Διαδραστικό διάγραμμα αρχιτεκτονικής και γράφος εξαρτήσεων όλων των πακέτων @cqrs-ddd, των behaviors του pipeline, της ροής domain events και της ενδεικτικής εφαρμογής API.
Επισκόπηση Αρχιτεκτονικής
Ενότητα με τίτλο «Επισκόπηση Αρχιτεκτονικής»1. CQRS & Ενορχήστρωση Pipeline
Ενότητα με τίτλο «1. CQRS & Ενορχήστρωση Pipeline»@cqrs-ddd/cqrs: Δημιουργεί ελαφριάCommandBus,QueryBusκαιEventBusμέσω τουcreateCqrs()χωρίς DI containers κάποιου framework.@cqrs-ddd/pipeline: Ενθυλακώνει οριζόντια behaviors εκτέλεσης (LoggingBehavior,CacheBehavior,CaslBehavior, κ.λπ.) γύρω από domain handlers.- Request Kinds βασισμένα σε συμβόλαια: Η δρομολόγηση αιτημάτων χρησιμοποιεί το
Symbol.for('@cqrs-ddd/request-kind')για να αποφεύγεται η άμεση σύζευξη μεταξύ του pipeline και των domain επιπέδων.
2. Domain Events & Ασύγχρονες Εργασίες Παρασκηνίου
Ενότητα με τίτλο «2. Domain Events & Ασύγχρονες Εργασίες Παρασκηνίου»- Buffered Domain Events: Τα aggregates αποθηκεύουν προσωρινά domain events (
UserCreatedEvent,UserUpdatedEvent,RoleCreatedEvent, κ.λπ.) κατά τη διάρκεια μεταβολών κατάστασης. - Αυτόματη Δημοσίευση Events: Ο
CommandBaseHandlerδημοσιεύει αυτόματα τα αποθηκευμένα events μέσω τουEventBusμετά την επιτυχή ανθεκτική αποθήκευση. - Queues με διατήρηση Context: Ο
BullMqUserEventDispatcherπακετάρει μηνύματα με τοwithJobContext(), διατηρώντας το tenant, το principal και το correlation id του καλούντος σε ουρές Redis. - Απομονωμένοι Processors: Οι workers παρασκηνίου (
SendWelcomeEmailProcessor,BatchUpdateUsersProcessor) εκτελούνται με τον decorator@InJobContext, επαναφέροντας το πλήρες context εκτέλεσης χωρίς διαρροές μεταξύ εργασιών.
3. Καθαρό Domain & Persistence
Ενότητα με τίτλο «3. Καθαρό Domain & Persistence»@cqrs-ddd/core: Δομικά στοιχεία DDD ανεξάρτητα από framework (AggregateRoot,Entity,ValueObject,DomainEvent, domain errors) χωρίς εξωτερικές εξαρτήσεις.@cqrs-ddd/mikro-orm: Υλοποιεί αφαιρέσεις repositories για write-side λειτουργίες με έλεγχο ταυτοχρονισμού βάσει έκδοσης (optimisticUpdate) και mutation barriers προστασίας από επαναφορά διεγραμμένων εγγραφών.- Caching δύο επιπέδων: Το caching snapshots οντοτήτων στο repository (
@FromCache,@Cache) διατηρείται αυστηρά ξεχωριστό από το caching συντεθειμένων αποτελεσμάτων στο pipeline (CacheBehavior).
4. Εφαρμογή Αναφοράς
Ενότητα με τίτλο «4. Εφαρμογή Αναφοράς»api/: Πλήρης REST εφαρμογή αναφοράς που επιδεικνύει διπλούς adapters για Express και Fastify, απομόνωση multi-tenant, BullMQ background workers και διαχείριση sessions.