Very nice article and clear examples! I especially like your point about postponing a decision as long as your not absolutely required to make it and keeping your options open. I think this nicely aligns with the principles from Hexagonal Architecture (I'm making the same point in https://medium.com/jeroen-rosenberg/why-ravioli-is-my-favourite-recipe-34fb16f2bc3c). I'm curious as to what is your take on hexagonal architecture?