My Authors
Read all threads
I am more and more hooked on the idea of using message-driven finite-state-transducers as a mathematical model to describe #DDDesign Aggregates. This would enable automated determinism proofs, unions, concatenation, projections, and any other operation that is available for FSMs.
A transducer is defined as a sextuple: (finite input alphabet / commands, finite output alphabet / events, initial state, finite set of states, state transition function (state, command) -> state / behaviours, output function (state, command) -> event). #DDDesign
I spent a bit of time implementing a very naive UserRegistration Aggregate based on an also naive generic transducer in #Scala, you can check ou gist.github.com/tPl0ch/5c6c9a0…
It felt very natural to design it that way. Static types can already provide the input, state & output sets.
There are related patterns like the State Pattern, but none gives us the mathematical soundness that a proven model gives us. I will talk about this idea and much more in tomorrow's @virtualDDD meetup on #DDDesign Aggregates!
Missing some Tweet in this thread? You can try to force a refresh.

Enjoying this thread?

Keep Current with Data-Driven Uncertainty

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!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Follow Us on Twitter!

Did Thread Reader help you today?

Support us! We are indie developers!


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

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

Become Premium

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

Donate via Paypal Become our Patreon

Thank you for your support!