DEV Community

Discussion on: What architecture do you use?

Collapse
 
kspeakman profile image
Kasey Speakman • Edited

I use DDD, CQRS, event sourcing, eventual consistency, functional architecture, and no frameworks. I didn't start there. I started with just CQRS after experiencing long-term maintenance pain with traditional layered apps, then I progressively integrated the other stuff one at a time as I did new projects. Not necessarily on purpose, but just because after I did one thing, I could see how the next thing would be a further optimization. Of course functional architecture was a paradigm shift that took a while to come to grips with by itself.

The thing with DDD is: you can't just use the code patterns and expect success. (In fact, using only the code patterns is going to be painful.) The human strategies are really the only things that matter. The code patterns in the book are example implementations. With functional programming, I use approximately zero of them as defined. Although some of their intended purposes survive. For example, I don't have an aggregate root, but I have an event stream which serves as a transaction boundary like an AR does.