How to improve template structure for faster deployment


I’m looking for advice on how best to structure a growing project. We use API Gateway, Lambda, Step Functions, S3, and CloudWatch Events. We have a single REST API with each resource linked to a lambda. We also have many lambdas triggered by CloudWatch Events or S3. In total we have roughly 150 lambdas and 8 state machines. The code for all of this is held in a monorepo with 17 projects. Each project deploys some part of the application using a Serverless template with 15 of the projects affecting the API.

The result of this structure is that we need to deploy each project sequentially to prevent conflicts updating the API. As our application continues to grow, so does our deploy time and this is problematic.

So I am looking for ways to restructure the templates to allow for parallel deploys and continued growth. I’m hoping to stay with Serverless as it definitely simplifies the CloudFormation deploy bit.

Thanks for your suggestions.