Over the past few years, I’ve watched serverless architecture go from “cool new thing” to the default option for tons of early-stage projects. At first, it sounds great: no servers to manage, automatic scaling, and paying only for what you use. Perfect when you’re not sure how much traffic you’ll get. But after working on quite a few projects at Devlane, I’ve learned it’s not that simple.
Serverless computing can work really well, but it can also introduce issues that only show up later. I’ve seen teams ship features ridiculously fast because of it. I’ve also seen others get stuck with surprise costs, weird performance hiccups, and painful migrations down the road. Here’s how I think about where it actually works, and where it doesn’t. Let’s dive in!
What Is Serverless Architecture?
At a basic level, serverless is just code that runs when something happens, without you managing the infrastructure. You break your backend into small serverless functions that only run when something triggers them, and those triggers could be an HTTP request coming through an API Gateway, a file upload, a database change, a message in a queue, or even a scheduled cron job.

This is what people call Function as a Service (FaaS). The big players are:
- AWS Lambda
- Azure Functions
- Google Cloud Functions
The cloud provider takes care of provisioning, scaling, patching, and uptime. You just write code and deploy.
Where Serverless Architecture Works Well
From what I’ve seen at Devlane, serverless works best when you lean into its strengths: event-driven logic, spiky traffic, and the need to move fast.

1. Event-Driven Systems
If your system mostly reacts to things happening rather than running constantly, serverless feels like it was made for this. For example, we built a document processing backend for a HealthTech client where users uploaded PDFs. Every upload fired an AWS Lambda function that ran OCR, extracted data, validated everything, and saved the results. The code only ran when there was actual work, no idle servers wasting money.
We’ve used this same approach for notification systems, image processing, and data enrichment jobs, basically anything where the logic is “triggered,” not always-on.
2. APIs With Unpredictable Traffic
RESTful APIs behind an API Gateway are another sweet spot. We helped a SaaS startup build their entire backend with serverless functions. During their big launch, a marketing campaign drove way more traffic than expected. The system just scaled automatically. No one had to scramble with load balancers or emergency server provisioning.
This works especially well for:
- MVPs.
- Internal tools.
- Early-stage serverless web applications.
You get automatic scaling without having to think about infrastructure.
3. Independent Backend Functions
Serverless architecture pairs nicely with a microservices architecture when you keep things clean. One function for auth, another for payments, a third for reports, each can be updated and scaled separately.
Just don’t confuse the two: serverless vs microservices are different things. Serverless is about how you run the code. Microservices are about how you organize your application. Mixing them works, but only if you’re careful not to create a mess of tiny, tightly coupled functions.
4. Fast-Moving Startups Teams
For early-stage teams without a full DevOps crew, serverless can be a lifesaver. We’ve seen multiple startups go from idea to live product in just a few weeks because they didn’t have to set up infrastructure, manage clusters, or worry about scaling rules. If your traffic is uncertain and you want to validate fast, it’s often the most practical choice.
Limitations of Serverless Architecture
This is where the trade-offs start to show.
The same things that make serverless great in some scenarios become liabilities in others. These are the limitations I've seen show up again and again.
1. Cold Start Latency
Cold starts are still an issue. If a function hasn’t been used for a while, the platform has to spin up a new environment. That can add noticeable delay, sometimes hundreds of milliseconds or more. We ran into this with a customer-facing API. The first request after quiet periods felt sluggish. For some apps it’s fine, for anything latency-sensitive, it can be a deal-breaker.
2. Long-Running Processes Limitations
Serverless functions have execution time limits for a reason. Trying to force long running processes into them (video encoding, heavy ETL jobs, complex data transformations) usually ends badly.
We once joined a project where the client was running a full data pipeline on Azure Functions. The setup made sense early on, but as the workload grew, chained functions and state management became harder to maintain. Together with the client, we migrated the pipeline to a container-based approach, which gave them cleaner architecture and lower costs.
3. Debugging Distributed Functions
What starts simple can turn into a pretty complex distributed system. Debugging across dozens of functions, tracing requests, and managing dependencies gets painful fast.
4. Vendor Lock-In
You end up using a lot of provider-specific features and integrations. Moving away later is possible, but rarely simple or inexpensive.
5. Costs Management at Scale
It’s cheap at low usage, but once you have steady high traffic, invocation fees, API Gateway charges, and observability costs can add up surprisingly fast. We’ve migrated a couple of stabilized systems to containers and cut the bill significantly.
Pros and Cons of Serverless Architecture
Choosing the right architecture means weighing trade-offs. Here's a quick breakdown of the main advantages and limitations of serverless architecture, so you can see at a glance where it fits your project and where it might fall short.

What Types of Startups Should Use Serverless?
This isn't a hard rule, but after enough projects you start to see a pattern. From what I've seen, serverless usually pays off in some setups and creates friction in others.
It is usually a great fit for:
- Early-stage startups building MVPs.
- Products with unpredictable or bursty traffic.
- Event-driven platforms (notifications, file processing, webhooks).
- Teams without dedicated infrastructure people.
It is generally not the best choice for:
- Low-latency, real-time systems.
- Applications with consistent high load.
- Heavy, continuous data processing workloads.
How Serverless Changes DevOps
Serverless doesn’t remove DevOps, it changes what you focus on. You stop worrying about servers and start caring more about infrastructure as code, solid observability, automated pipelines, and proper permissions. In my experience, you actually need stronger monitoring and tracing skills.
A Simple Serverless Architecture View
Most of these systems follow a simple flow: a client sends an HTTP request to an API Gateway, which routes it to the right serverless function. The function runs the logic and talks to backend services like databases, storage, or queues. The response then travels back to the client. It stays clean as long as you don't overcomplicate it.
My Honest Take
If I were kicking off a new project right now, serverless would be my first instinct for anything with uncertain traffic and event-driven workloads. It's worked well for internal tools, data ingestion pipelines, and early customer APIs. I'd be more cautious, or go hybrid, when latency really matters or when the workload runs constantly at high load.
Final Thoughts
Serverless is a powerful tool when it matches the problem you're solving. The biggest mistake I see is teams choosing it because it's trendy, instead of because it genuinely fits their needs.
My advice after working through these projects? Focus on the problems you actually have today. Measure real usage, real costs, and real performance. Then let your architecture evolve naturally as your product and team grow. That approach has consistently delivered better outcomes than chasing trends.
Throughout my years working on projects at Devlane, I’ve had the chance to collaborate with senior engineers across different products, teams, and growth stages. One thing I’ve seen consistently is that great engineering judgment matters more than following the latest trend. The best teams know how to choose the right tools for the right challenges, and that mindset makes all the difference when scaling.

Other Blog Posts


.webp)


