On my first serverless projects, I used hapi (the whole shebang) and wrapped it in a lambda. On my current project, I am using AWS HTTP Gateway as the router.
This means each endpoint points to a different lambda.
Strengths
- Each endpoint can be released separately
- No overhead of a router. Depending on the library used, my zip files are usually less than 1 MB
- Each endpoints log is separated into its own log group. This turned out making debugging easier.
Weakness
- Every lambda has to be cold started. I'm getting 1-2 seconds cold start. It might cost you more to do provisioned currency (at the very least, you need to do more maintenance)
- You have to still need to your own validation code. I ended up using JOI and build a DIY tiny 'framework'.
- Takes a while to figure out the whole setup. Lots of googling and trial and error.