Batch processing and offline maintenance are terms once feared as much as memory and computer power were yesterday. The eruption of microservices and similar technological advances has changed our perception of possible.
A trend has emerged, and it’s the opposite of what convention would tell us. Companies are first building out technical capabilities using a "monolith first" strategy for developing codebases. Monolith-first applications are made up of modules forming software applications that are not independent of the core application. This strategy is later followed by transitioning these monolithic structures into more scalable microservice architectures.
At the surface, it appears that every industry — including financial services, energy, and yes even real estate — has benefited from using the design principles of modularity. Informed technology leaders understand the benefits that microservices offer and are wrapping them around their business models.
Modern programming languages such as Java, Python and C/C++ enabled the development of server-side applications. These languages decomposed complexity by adding abstractions. The language abstractions depended on sharing resources (memory, database, files) to create a single executable artifact, also called monoliths.
Uberfollowed the lead of Amazon, Netflix and Twitter in the movement to divide monolith application structures into chunks to form service-oriented architectures (SOA). The Uber stack was composed of three stagnant pillars, or monoliths:
Nearly all of the functionality Uber provided riders and drivers was woven into this value stack. Stability and performance worked well: The ability to scale didn’t work.