- Make each program do ...
- Make each program do one thing well. To do a new job, build afresh rather than complicate old programs by adding new “features.”
- Expect the output of every program to become the input to another, as yet unknown, program.
The first point is realized by the idea of microservices. However the last point is often missed when designing microservices. And we are far away even with Kafka and Samza from being able to orchestrate all our microservices as easily as we orchestrate unix tools with a terminal.
Published by Martin Kleppmann on 05 Aug 2015.