I’m starting a new SaaS project and everyone is pushing for AWS Lambda and DynamoDB. However, I’m worried about vendor lock-in and the difficulty of local debugging. Is the speed of development in serverless still worth the risk of being stuck with one provider if they raise prices or deprecate features?
3 answers
For a startup, speed is your only real competitive advantage. Serverless lets you go from zero to production without hiring a platform engineer. The "lock-in" fear is often overstated for startups—if your business succeeds enough that you need to migrate, you'll have the revenue to hire a team to do it. We use the Serverless Framework which abstracts some of the AWS-specific YAML, making it slightly easier to move to GCP Functions if we ever had to. Focus on finding product-market fit first; don't over-engineer for a migration that might never happen.
Have you looked into "Hexagonal Architecture" to keep your business logic separate from the Lambda triggers? It makes local testing and potential migrations much easier.
I think "Serverless containers" like Google Cloud Run are the best middle ground. You get the scaling of serverless but the portability of a standard Docker image.
I totally agree with Dorothy. Cloud Run gives you that safety net. If you want to leave Google Cloud, you just take your Dockerfile and run it on any Kubernetes cluster.
Richard is spot on. We keep our core logic in plain TypeScript classes and only use Lambda as the "entry point." This allows us to run the same code in a simple Express server for local development. It completely removes the "black box" feeling of serverless debugging. We also use LocalStack to emulate AWS services locally, which has made our dev loop almost as fast as a traditional monolithic setup.