The article seems written soundly but I can't stop thinking that all these patterns discribed there are just a huge overengineering and are solving problems which don't really exist.
codingfox 7 hours ago [-]
Thanks for the feedback. I got a bit surprised by the "overengineering" part. Especially that one of the reasons for writing this piece were the "enterprise" grade systems I've seen, which had so many layers they were hard to grasp at all.
Please note the "adaptability" feature mentioned several times in the text. Applying each of the techniques/patterns/tests should always be a conscious decision. The tutorial explicitly demonstrates, for instance, that not all modules got a separate "infra module", because their logic didn't justified it.
0x457 23 hours ago [-]
I try to use something between hexagonal and this, but more nested (i.e. adapters internally might use this architecture.
Sometimes Domain logic has to leak because you want to rely on certain implementation behavior: for example, logicailly there is separation of concerns, but there is a strong argument to commit these changes in a single transaction. In that case I either switch to oplog or if delay is acceptable push to my saga engine.
scrubs 21 hours ago [-]
I'm liking what I see here. Thank you.
codingfox 7 hours ago [-]
Thanks for the feedback!
2 days ago [-]
Rendered at 22:43:46 GMT+0000 (Coordinated Universal Time) with Vercel.
Please note the "adaptability" feature mentioned several times in the text. Applying each of the techniques/patterns/tests should always be a conscious decision. The tutorial explicitly demonstrates, for instance, that not all modules got a separate "infra module", because their logic didn't justified it.
Sometimes Domain logic has to leak because you want to rely on certain implementation behavior: for example, logicailly there is separation of concerns, but there is a strong argument to commit these changes in a single transaction. In that case I either switch to oplog or if delay is acceptable push to my saga engine.