Too Long; Didn't Read
The most important foundation to keep in mind is that well-designed serverless applications are decoupled, stateless, and use minimal code. As the projects and applications grow, simplicity and low-code needs to be maintained. The aim here is to have one single piece of functionality that does that one thing very well. The best way to consider this is through the functions and resources that define a microservice. Move away from monolith designs can still suit some functionalities, with a business and application that is going serverless will save a huge amount of time.