Invariant driven development, dangers of simplicity and Service Boundaries…
this is a special “kind of short because I am on a train the whole day” edition of the newsletter. As always, I am looking forward to feedback. I hope you like this week’s selection.
Great article, giving you some food for thought about how much simplicity is actually helpful. There is no doubt about unnecessary complexity being a problem for many projects, but at the same time, focusing on simplicity as a means to an end, will have a negative effect as well. Just look at the headphone jack on your iPhone for reference.
Heuristics for Identifying Service Boundaries by Erich Eichinger
Really great and detailed article about things to consider when trying to break a system into sub systems (modules, services,…). Way to much info to compress into one or two sentenced, so go ahead and read it yourself. :)
I firmly believe that we will inevitably get it wrong because at the beginning we know the least about the system we are supposed to design and build.
Invariant Driven Development by Charlie Koster
I really love this way of thinking about designing a software system. The core idea is to use the type system to ensure, that the software can only represent states, that are actually desired by the user. We have seen first steps in languages like Kotlin getting rid of the always optional null value, and we have seen this come to full beauty in languages like Haskell or elm.
This article heavily focusses on a way to achieve some of this in Typescript, which is wonderful because it is a language thst very many of us use every day.
I do not use any tracking or feedback mechanism on this website. Instead, I would love for you to get in touch with me via twitter.com/__florian to let me know if you liked it or if you have any suggestions or questions.