A microservices architecture is object-orientation with big objects
Alan Kay says the following about the meaning of OOP:1
OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things.
This applies to microservices as well:
-
messaging: Microservices talk to each other over HTTP (or at least some kind of network protocol).
-
local retention: Each microservice has its own state. (I’m treating a microservice as a collection of running instances.)
-
protection and hiding of state-process: A microservice’s internal state can only be changed through messages.
-
extreme late-binding of all things: Parts of a microservices architecture can (and are) deployed independently, changing their APIs and the way they communicate at runtime.
-
Stefan Ram, “Dr. Alan Kay on the Meaning of “Object-Oriented Programming”,” July 23, 2003. ↩︎