Death by a Thousand Microservices
I am one of the biggest proponents of microservices.  I helped build the platform at Netflix, I've literally traveled around the world extolling the virtues of microservices.But I also advise a lot of startups, and you know what I tell them nearly every time?Build a monolith.It's so much easier to start out with one codebase and one database, and that will scale for a while.  Especially if you use a key/value store like DynamoDB (although you will lose relational functionality that can be helpful at the start).  And did you know that you can deploy a monolith to Lambda and still get all the benefits of Lambda without building services?And then, when you start growing, that's when you break out an independently scalable part of the system into a microservice (with it's own data store!).  The one that may need to scale independently, or that you want to be able to deploy separately.Microservices takes at least 25% of your engineering time just maintaining the platform.  It's not worth it unless you can recoup that 25% in efficiency.