Abstract
The present document covers the architecture and patterns useful for developing a cloud software solution. There are different architecture styles enlisted with their trade-offs.
A cloud-based software application should make the best use of the distributed software architectural styles, while some aspects of monolithic architecture patterns may be used the internal component design. The choice here is completely dependent on the requirements of the solution, resource, and time availability. It further depends on the business goals the solution intends to achieve, e.g., solution at scale with big data, variable and high throughput of data and API requests vs. solution at scale with linear, and a predictable rise in API requests and data vs solution for a fixed number of users and well defined limited data.
Often, hybrid architectures can be the answer when providing software architecture for a complex business problem.