When to use microservices?

This is a follow up to an earlier article on microservice architecture implementation principles. It was promised back then to get back to the question of “when to use microservices”. A bit of history The overall architecture pattern of microservices was successfully implemented in 2010-ish. That was an endeavor on the part of a few…

Memory Layers Latency Difference

There’s such term as memory hierarchy in computer architecture. In simplistic terms it’s about structuring different memory/storage types based on response time. In software design & architecture memory hierarchy directly affects performance and may make or break design of a particular software system. Memory layers latency difference is very important to software design. Basics of…

Scalable Backend Secret Sauce

There’s an implementation principle of a scalable backend system which I find among the most important ones. It’s about minimization of compute resources footprint of a request handler for every possible request. This principle isn’t only applicable to handlers in request/response scenarios, e.g. REST or GraphQL APIs. For a session-based handler like a websocket handler…

Microservice Architecture Implementation Principles

Today on microservice architecture implementation principles. I intentionally don’t touch the topic of whether or not one should use microservice architecture for a particular project/company context in this article. That’s a big separate topic of its own and a story for another day. The following list consists of fundamental items which should be kept in…