3 ms·
A few things that are harder with Microservices. * A known good consistent state. How do you freeze and take a snapshot of a micro service in a distributed stat
by acd 8y ago
A few things that are harder with Microservices.
* A known good consistent state. How do you freeze and take a snapshot of a micro service in a distributed state?
* Caching, if you use a monolith you could be access the L1-L3 CPU caches on the local node meaning a very fast access. Accessing local cache is 0.5-7 ns vs 500 000 ns for a network trip https://gist.github.com/jboner/2841832 https://gist.github.com/jboner/2841832
* Tracing latency. In a monolith you can use performance tracing tools on a local process and get a good overview. In Micro services you need distributed tracing tools
* More complex architecture with more moving parts which makes it harder to diagnose for errors.
* Memory efficiency as programming language run times are loaded several times for the different micro services.
Good things about Micro services.
* It allows for distributed teams, backend, frontend teams and to have a common interface json calls to communicate between the services.
* You can replace a micro service with another micro service
* It may be a good fit for startups that needs to rapidly prototype. That it is good for fast moving startups does not mean it is good for traditional enterprises.
We are likely beyond peak hype on the hype cycle for micro services.
https://en.wikipedia.org/wiki/Hype_cycle https://en.wikipedia.org/wiki/Hype_cycle