We will be using 3 tier architecture. 3 Tier architecture is a client-server software architecture pattern in which the user interface (Presentation), functional process logic (business rules), computer data storage and data access are developed and maintained as independent modules, most often on separate platforms. 3 Tier architecture consists of Presentation Tier, Application Tier and Data Tier.Presentation Tier:It is the topmost level of the application. It displays information related to such services as browsing, purchasing and shopping cart contents. It communicates with other tiers by which it puts out the results to the client tier and all the other tiers in the networkApplication Tier:This tier is also known as business logic, logic tier, or middle tier. The logical tier is pulled out from the presentation tier and, it controls an application’s functionality by performing detailed processing.Data Tier: This tier includes the data persistence mechanisms and the data access layer that enclose the persistence mechanisms and exposes the data. The data access layer should provide an Application Programming Interface (API) to the Application Tier that exposes methods of managing the stored data without exposing or creating dependencies on the data storage systems.The reason we proposed 3 tier architecture is because of Scalability, Performance and Availability.Scalability – Tiers can scale horizontally.Performance – Because the presentation tier can cache requests, usage of network is minimized, and the load is reduced on the application and data tiers. If needed, one can load-balance any tierAvailability – if the application tier server is down and caching is sufficient, the Presentation tier can process web request using the cache. The Advantages of using 3 Tier ArchitectureIt gives one the ability to update the technology stack of one tier, without impacting other areas of the applicationIt allows for different development teams to each work on their own areas of expertise. Today’s developers are more likely to have deep competency in one area, such as coding the front end of and application instead of working on the full application.One is able to scale the application up and out. A separate back-end tier. For example, allowing one to deploy to a variety of databases instead of being locked into one particular technology.3 Tier Architecture adds reliability and more independence of the underlying servers or services.It provides an ease of maintenance of the code base, managing presentation code and business logic.