Indu Alagarsamy on the intersection of #DDD as a software discipline with Messaging as a technology counterpart. @Indu_alagarsamy
infoq.com/presentations/…
highlights:
👏🏾 in order to capture, understand, implement domain nuances, separate the unified model into new ones in it's own bounded context
👏🏾 decompose models/contexts
- by teams' makeup/composition
- by transactional consistency
- by business processes/ behaviors
👏🏾 embrace refactoring/ refinement of the model as domain insight deepens
👏🏾 event and message driven asynch archs are paradigms that can decouple your bounded contexts
that 300 analogy regarding commands 😆
types of messages
- events - use between contexts
- commands - use within contexts
👏🏾 contexts dont bully each other with commands darn it, they send event messages
👏🏾 event sourcing/modeling is not a silver bullet
you dont all of a sudden get clean well designed
loosely coupled maintainable scalable architecture for free
careful about the event messages you pass from one context to the other
- thoughtfully design your event message data structures
- consider of how/what state information is passed
😆
"Friends don't let friends do distributed transactions" - Indu Alagarsamy
#eventDriven #ddDesign #SafetyFirst
saga pattern
- decompose long transactions/ message passing sequences into sagas
- save a bit of state for each saga
- reconstitute state for each saga
first time learning of this pattern 🎉
sagas - pattern description @crichardson
microservices.io/patterns/data/…
event messages trigger business processes cross context/sub-domain
perk up your ears when you hear the word "when" #eventmodeling
Event Storming, cus sticky notes are way cheaper than bugs in production 😅
#eventStorming
#eventStorming
sessions of SMEs collabing on identifying events and their constraints in a business process or system, with a goal to visually skecth out the domain model
events to commands
i.e. associate commands to appropriate events that
perform corresponding business process behaviors
and validate corresponding constraints
"you are deleted!" 😆
"All models are wrong, but some are useful." - George Box
be ruthless about coding the domain model concepts in the ubiquitous language and embrace refactoring and continuous improvement/refinement
#ddDesign #dddfl
one of my favorite topics - the naming of things
naming things is hard
but oh so worth it 💫
#selfDocumentingCode #codeAsDocumentation
#ubiquitousLanguage #meaningfulNames
more complex monitoring and cicd is the price you pay for distributed event driven arch
#ddDesign #eventDriven #distributedArch
model the behavior of the system
#ddDesign #eventDriven
i'll def do some study on these concepts
- temporal coupling
- autonomous decisions
- transaction rollbacks
this should be obvious to most experienced software professionals, but it bears repeating:
📢 there is no single software paradigm that is a silver bullet solution for all software problems ... not OOP, FP, dist archs, monolith, ES, CQRS, TDD, etc, etc. theres always a tradeoff
to say otherwise, imho, is just politicking an agenda or bias
friends dont let friends
go into production without cicd
streamlined like a well oiled push button machine
Share this Scrolly Tale with your friends.
A Scrolly Tale is a new way to read Twitter threads with a more visually immersive experience.
Discover more beautiful Scrolly Tales like this.
