You are developing a sever-side enterprise application. It must support a variety of different clients including desktop browsers , mobile browsers and native mobile applications. The application might also expose an API for 3rd parties to customer. It might also(71)with other applications via either web services or a message broker. The application handles requests(HTTP requests and messages)by executing business logic;accessing a databse;exchanging messages with other systems;and returning a HTML /JSON/XML ( 72) . There are logical components corresponding to different functional areas of the application.
What's the application' s deployment architecture?
Define an architecture that structures the application as a set of ( 73) ,collaborating services. This approach corresponds to the Y-axis of the ScaleCube. Each service is;
Flighly maintainable and testable-enables rapid and frequent development and deployment.
Loosely coupled with other services-enables a team to work independently(the majority of time on their servicers)without being impouted by changes to other services and without affecting other services.
( 74) deployable-enable a team to deploy their services without having to cortdinate with other teams.
Capable of being developed by a small team-essential for high productivity by avoiding the high communication head of large teams.
Services (75 ) using either synchronous protocols such as HTTP/REST or a synchronous protocols such as AMQP. Services can be developed and deployed independently of one another. Each service has its own database in order to be decoupled from other services. Data consistency between services is maintained using some particular pattern.