Serverless ≠ Microservices

There are some concepts or terms in software engineering that folks often assume are either synonymous or that one implies the other, when often neither of these are true.

I read an article earlier this week describing how Test-Driven Development (TDD) ≠ Unit Tests which got a hard agree from me. The gist is that some dogmatists insist that your aren’t doing proper TDD if you aren’t writing pure unit tests. Yet the workflow that TDD advocates (the Red-Green-Refactor cycle) works really well for writing integration and E2E tests (which I’m always harping on about!).

A similar bugbear of mine is when people conflate serverless and microservices.

Now we all know that serverless is a terrible name, but many people automatically assume that if you’re building a serverless application, then it’s by definition a microservices system, primarily because the compute is distributed through multiple Lambda functions. However, a microservices architecture is more than just distributed compute. Individual microservices need to be deployed independently, yet that often isn’t the case, say with multiple functions in the same stack. And in fact, I argue that most new serverless apps should start as a monolithic single deployment, as the overhead that microservices bring often isn’t worth it at the early stages of a project.

Are you bugged by any concepts or terms that you hear being conflated but are actually orthogonal?

Join daily email list

I publish short emails like this on building software with serverless on a daily-ish basis. They’re casual, easy to digest, and sometimes thought-provoking. If daily is too much, you can also join my less frequent newsletter to get updates on new longer-form articles.

    View Emails Archive

    🩺
    Architecture & Process Review

    Built a serverless app on AWS, but struggling with performance, maintainability, scalability or DevOps practices?

    I can help by reviewing your codebase, architecture and delivery processes to identify risk areas and their causes. I will then recommend solutions and help you with their implementation.

    Learn more >>

    🪲 Testing Audit

    Are bugs in production slowing you down and killing confidence in your product?

    Get a tailored plan of action for overhauling your AWS serverless app’s tests and empower your team to ship faster with confidence.

    Learn more >>