Kindle Notes & Highlights
Started reading
October 13, 2025
With microservice architecture, an application can easily be scaled both horizontally and vertically, developer productivity and velocity increase dramatically, and old technologies can easily be swapped out for the newest ones.
The reason most monoliths are susceptible to these problems is because the nature of a monolith is directly opposed to scalability in the most general possible sense. Scalability requires concurrency and partitioning: the two things that are difficult to accomplish with a monolith.
The basic concept of a microservice is simple: it’s a small application that does one thing only, and does that one thing well.
The goal of microservice architecture is to build a set of small applications that are each responsible for performing one function (as opposed to the traditional way of building one application that does everything), and to let each microservice be autonomous, independent, and self-contained.
Small companies often do not have the necessary infrastructure in place to sustain microservices, even at a very small scale: good microservice architecture requires stable, often very complex, infrastructure. Such stable infrastructure requires a large, dedicated team whose cost can typically be sustained only by companies that have reached the scalability challenges that justify the move to microservice architecture. Small companies simply will not have enough operational capacity to maintain a microservice ecosystem.
The API endpoints of microservices should be standardized across an organization.
Versioning of API endpoints is another anti-pattern that should be avoided for the same reasons.
In well-designed, sustainable microservice ecosystems, the microservices are abstracted away from all infrastructure. They are abstracted away from the hardware, abstracted away from the networks, abstracted away from the build and deployment pipeline, abstracted away from service discovery and load balancing.
The hardware layer (layer 1) of the microservice ecosystem contains: The physical servers (owned by the company or rented from cloud providers) Databases (dedicated and/or shared) The operating system Resource isolation and abstraction Configuration management Host-level monitoring Host-level logging
the second layer of a microservice ecosystem always contains the network, DNS, RPCs and API endpoints, service discovery, service registry, and load balancing.

