More on this book
Community
Kindle Notes & Highlights
by
Sam Newman
Read between
November 1 - December 24, 2017
On the other hand, you could be reactive, bringing up additional instances when you see an increase in load
we have three things we can trade off against each other: consistency, availability, and partition tolerance.
Partition tolerance is the system’s ability to handle the fact that communication between its parts is sometimes impossible.
Our system is consistent and partition tolerant, or CP. In
Getting multinode consistency right is so hard that I would strongly, strongly suggest that if you need it, don’t try to invent it yourself.
Consul,
if a record is out of date by five minutes, is that OK? If the answer is yes, an AP system might be the answer.
Our system as a whole doesn’t need to be either AP or CP.
with Cassandra I can make different trade-offs for individual calls. So if I need strict consistency, I can perform a read that blocks until all replicas have responded confirming the value is consistent, or until a specific quorum of replicas have responded,
Once you have more than a few microservices lying around, your attention inevitably turns to knowing where on earth everything
while a number of services exist for managing DNS inside an organization, few of them seem designed for an environment where we are dealing with highly disposable hosts, making updating DNS entries somewhat painful.
For a situation where you have only single nodes, having DNS refer directly to hosts is probably fine. But for those situations where you need more than one instance of a host, have DNS entries resolve to load balancers that can handle putting individual hosts into and out of service as appropriate.
The downsides of DNS as a way of finding nodes in a highly dynamic environment
Two different pieces of technology, Swagger and HAL,
delegate decision making and control to the teams that own the services themselves.