Structuring with monoliths, microservices, and island chains
All applications have structures, whether they're intentional or not. In general, it's best to choose an intentional structure based on specific application requirements. In terms of structuring your application processes, there are two common approaches. One approach is using a single monolith, while another is using many separate microservices. There's also a less common approach that can work well in some application types, which we'll refer to as the island chain approach.
With the monolith approach, all application code is managed in the same repository, all application data is stored in the same database, and all parts of the application run in the same process. This is the simplest approach in terms of management. It requires little to no coordination to handle changes to other parts of the system since, in a monolithic system, any change to any place in the system can usually occur atomically...