rasiim kyan Profile picture
Jul 7, 2020 โ€ข 26 tweets โ€ข 7 min read โ€ข Read on X
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 ๐ŸŽ‰
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

โ€ข โ€ข โ€ข

Missing some Tweet in this thread? You can try to force a refresh
ใ€€

Keep Current with rasiim kyan

rasiim kyan Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @refactorfiend

Oct 18, 2020
Domain Driven Design (DDD) made plain broke down to the bone gristle. cus i need that science to level up my code, but miss me with all the stuffy acronyms and jargon. ๐Ÿงต
domain

- the actual problem
- what we're trying to solve with the code for the user
- the set of problems that the users ask the developers to solve
- the subject matter
domain driven

- problem focused
- to stay focused on the actual problem
Read 122 tweets
Oct 17, 2020
switching from management roles to individual contributor roles and still making the same if not more bread is a slept on power move
moral of the story if/when the toxicity and burnout gets to be to much - make lateral moves
with the quickness #manifesto
Read 6 tweets
Sep 30, 2020
How do y'all like to ramp up on new tech?

๐Ÿงต
For me, when the need for a new language, library, framework, shiny thing, etc pops up - i find that i usually take the same general steps

and the 7-bullet list i jotted down in my notes became this thread:
1. pick a language, any language. or framework, library etc.

no tech is perfect. don't sweat it the choice too much. they all have pros and cons - but do try to pick one that has good community adoption so you can get help when you run into blockers
Read 13 tweets
Sep 30, 2020
re: adding code comments with respect to the single responsibility principle

As a #selfDocumentingCode fanatic, I do appreciate that some kinds of comments go a long way:

1/3
One comment/ blurb (1-3 lines):

- at the top of a class about the single responsibility of the class

- in the project readme/wiki about the single responsibility of the application

2/3
Some benefits:

- helps keep the class/application at the appropriate size

- helps make the class/application be easier to understand/work-with

3/3
Read 4 tweets
Sep 30, 2020
phrases never (before tonight) heard in a #PresidentialDebate

"shut up man"
"do you understand what this clown is doing"
"shush for a minute"
"lemme shut you down for a second"
"he's a fool"
"nobody cares"

I feel some more coming on
"you're the worst president evarr"
Read 4 tweets
Sep 28, 2020
"Always implement things when you actually need them,
never when you just foresee that you need them." - Ron Jeffries

i feel attacked ๐Ÿ™„

(over-abstraction is one of my guilty pleasures) ๐Ÿ˜…
like, sometimes i'll take that advice to "code to the interface" to the extreme, just cus i can, and i'll make everything an interface. what you can do with polymorphism and dependency injection is fun ...
but man is it an over-abstraction time suck when trying to just focus on "keeping it simple" KISS minimum viable product. gotta draw the line somewhere and make concrete classes and move forward ...
Read 4 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us!

:(