More on this book
Community
Kindle Notes & Highlights
Which is also why I view most forms of IT certification as worthless, as we know so little about what good looks like.
becomes harder to hire people or move them between teams if you have 10 different technology stacks to support.
If you are working in an organization that places lots of restrictions on how developers can do their work, then microservices may not be for you.
Governance ensures that enterprise objectives are achieved by evaluating stakeholder needs, conditions and options; setting direction through prioritisation and decision making; and monitoring performance, compliance and progress against agreed-on direction and objectives. COBIT 5
great software comes from great people.
onion architecture, as it had lots of layers and made me cry when we had to cut through it.
However, it should be your secondary driver for finding these seams, not your primary one.
Strong cohesion and loose coupling — with database integration, we lose both things.
In general, I have found that systems that tend more toward the choreographed approach are more loosely coupled, and are more flexible and amenable to change. You do need to do extra work to monitor and track the processes across system boundaries, however. I have found most heavily orchestrated implementations to be extremely brittle, with a higher cost of change. With that in mind, I strongly prefer aiming for a choreographed system, where each service is smart enough to understand its role in the whole dance.
The evils of premature optimization have been well documented before, so I don’t need to expand upon them here.
Personally, though, I am still a fan of XML. Some of the tool support is better.
implementing tolerant readers is a nontrivial activity
However, vendors tend to want to package lots of software with them, which can lead to more and more smarts being pushed into the middleware, as evidenced by things like the Enterprise Service Bus.
avoid duplicating our system behavior and knowledge.
I’ve seen this approach lead to disaster when these server-side endpoints become thick layers with too much behavior.
commercial off-the-shelf software
the cost of customization can be more expensive than building something bespoke from scratch!
Avoid database integration at all costs.
Prefer choreography over orchestration.
I would suggest you look at unifying or at least reducing the number of different operating systems you use.
consumer-driven contract (CDC).
Pact is a consumer-driven testing tool
where the appetite to learn in production is low, and people would rather work as hard as they can to eliminate any defects before production, even if that means software takes longer to ship.
Sometimes expending the same effort into getting better at remediation of a release can be significantly more beneficial than adding more automated functional tests.
You really need to have targets.
Application-level metrics, like the number of orders placed,
Meanwhile, system metrics like response times, error rates, and CPU load
And the more functionality something has, the greater the attack surface.
Cross-cutting changes can occur, of course, but their likelihood is significantly reduced by our avoiding technology-oriented teams.
services than people, and is growing at a rapid pace. The ability to deliver change has helped the company achieve significant success in the local market to the point where it is expanding overseas.
Netflix also takes a more aggressive approach, by writing programs that cause failure and running them in production on a daily basis.