A microservices architecture is object-orientation with big objects

Dr. Alan Kay on the Meaning of “Object-Oriented Programming”:

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.

References

Stefan L. Ram, Berlin. “Dr. Alan Kay on the Meaning of ‘Object-Oriented Programming,’” July 23, 2003. http://www.purl.org/stefan_ram/pub/doc_kay_oop_en.