December 25, 2019

Kill 'Microservices' before its too late


Chad Fowler, CTO of Wunderlist


"I want to build systems that will survive." I also have this feeling that software cannot last for long without turning into unmanageble pile of code. Interesting to see different points of view, John Ousterhout in his presentation about software design provided us with his point of view that length of code base does not really matter and depth would be the main thing to look for.

Chad is a proponent of tiny components. They are not talking about exactly the same thing, but it’s interesting to notice all this "guidelines" that worked for me and probably are not going to work to everybody.

Some very contradictory points was made by Chad in this presentation, but I sort of agree based on my current experience with some points, specially about shared code and treating code as "permanent"-thing.

I like the idea to write systems and plan code to be disposable.


The system is the asset, code is a liability

Mutability of the system is enhanced by immutability of its components

Code that works and has never been modified is good code. (???)

If it hurts, do it more often


  1. Throw away the system and start over.

  2. You should plan to throw code away.

  3. Radically heterogenous environment to not become stuck with preconditions

  4. No shared code

  5. Metrics vs Tests

Tags: architecture