- Four separate service processes first run on the same eight-vCPU machine, using HTTP/JSON internally. Holding the application hardware constant helps separate service-splitting costs from machine-placement costs.
5:39 - Capacity falls from the monolith's 60,000 users to 25,000 users.
5:39
Why a request does more work
An article request needs article data, author information, and the current user's follow status. Articles calls profiles, which calls users; batching reduces request count but preserves this dependency chain. 6:00
flowchart LR
Client[Public article request] --> Articles[Articles service]
Articles --> Profiles[Profiles service]
Profiles --> Users[Users service]
- Every internal step requires client and server request handling, encoding, decoding, and scheduling. The complete response waits for the chain to finish.
6:00 - Same-machine placement avoids inter-machine travel but preserves service-request machinery. These requests do not become ordinary function calls.
6:20 - Application-tier CPU work rises from approximately 0.47 ms per public request for the monolith to 1.2 ms for HTTP microservices, a little over 2.5 times as much.
6:20 - CPU work sums processing consumed by the application tier. End-to-end response time also includes waiting on services or the database, so these CPU values are not request latency.
6:206:42