Modern software applications are required to be performant, scalable, and maintainable if they are to effectively contribute to the long-term success of any project, team, or company. To achieve these objectives, the architecture used to build these services is of paramount importance. To date, many large-scale applications have been built as monolithic services that grow and grow over time. However, many organizations are turning away from the monolith because of a tendency toward mixed responsibilities, poor performance, and costly maintenance. Instead, these organizations are embracing a microservices architecture.
In this section, we're going to provide some context to the discussion around monoliths versus microservices so we can better understand how Kotlin may fit into a modern services architecture.