April 12, 2020
Stefan Tilkov presents a number of different microservice architecture anti-patterns and approaches that he encountered as a consultant. These anti-patterns and foot-guns resulted in poor performance, difficult to manage codebases/systems and disappointed shareholders.
In each example, he cites why a certain decision was made and how it resulted in subpar results. He then provides solutions that are specific to the given projects characteristics. He repeats many times that “context is key” when designing a system and emphasizes that there is no such thing as a perfect architecture for a given system.
My main takeaway from this presentation is that one must take a fluid approach to system design and understand that there are tradeoffs when making architectural decisions. One cannot design a system to be infinitely flexible as (“If you try to satisfy everyone, you’ll likely satisfy noone”) but with “too much rigidity, a way around the rules will be found”. One must understand the costs and benefits to a given approach, communicate said tradeoffs and plan the future around these tradeoffs.