At first glance, a three-tier web application using a REST API can be an easy topic and pattern. After all, there are only three layers, which are responsible for very discrete tasks, and the final result is just a web application after all. However, there are many nuances and areas for tweaking with any web application. Serverless web applications are no different. This chapter will attempt to cover as many areas as possible, but it's impossible to include every possible configuration or design option.
Seeing as we are responsible software designers, let's sketch out our architecture at a high level and drill down into more detail as we work through the different layers:
This diagram should look familiar as it's the backbone of many client-server web applications out there today. Let's walk through the different layers, going from the top down. After discussing these layers at a high level, we'll get into the implementation details with a real-world example.
You can find all of the code in this chapter in the following repository:
Even though a common and arguably simple pattern, there are many possible complexities when deploying a stack like this on AWS with a serverless architecture. While AWS is the PaaS of choice for this and subsequent chapters, there are many topics that cannot be covered in great depth due to the size of AWS as a topic by itself. If you get stuck or are confused by any missing content, feel free to open a GitHub issue at the preceding repository to begin a dialog and I'll do my best to help.