The ability of an application to scale in the cloud is vital when it comes to building large Internet applications. One way to ensure that an application is able to scale efficiently is by breaking it down into smaller, independent components, which operate asynchronously with each other.
Breaking a large application into functionally separate modules can have a number of benefits for the architecture of your application. They are as follows:
It allows the components to be scaled independently.
It reduces coupling within the application (when constructed with the messages and the interfaces). The components can then be updated separately.
It reduces the complexity by reducing the contact points to the business logic. The interactions must be explicit rather than a simple method call.
Having the components operate asynchronously with each other means the following:
The users and the User Interface (UI) are not being held up, waiting for the work to...