June 08, 2015 at 02:00PM
"Designing something to be fast and correct; realize that distributing it will frequently take away both." #readingToday  

When distributing, the emphasis should be on resilience engineering and adopting loosely coupled, stateless components—not microservices for microservices' sake. We need to view eventual consistency as a tool, not a side effect. The problem I see is that teams often end up with what is essentially a complex, distributed monolith. Now you have two problems. If you're building a microservice which doesn't make sense outside the context of another system or isn't useful on its own, stop and re-evaluate. If you're designing something to be fast and correct, realize that distributing it will frequently take away both.

"You can have a second computer once you've shown you know how to use the first one." -Paul Barham The first rule of distributed systems is don't distribute your system until you have an observable...