The serverless revolution, pioneered by services like AWS Lambda, changed the way we build applications. The ability to run code without provisioning or managing servers—and paying only for the compute time you consume—was a game-changer. Lambda is a phenomenal tool, a foundational building block for the modern cloud.
But as any developer who has built a complex system on Lambda knows, it's just that: a building block.
You still need to wire up API Gateways, write validation logic for every payload, manage state with DynamoDB or SQS, and orchestrate complex sequences with Step Functions. The focus quickly shifts from writing valuable business logic to managing cloud infrastructure.
This is where a new evolution in serverless architecture emerges. It's not about replacing Lambda, but building on its promise. Enter the agentic workflow platform. Let's explore the difference between a compute service like AWS Lambda and an agentic platform like Functions.do.
The core difference boils down to the level of abstraction and the problem being solved.
AWS Lambda is a compute service. It gives you a powerful, isolated environment to execute a function. Think of it as a high-quality, versatile LEGO brick. You can build absolutely anything with it, but you are responsible for finding all the other pieces and figuring out how they connect to build your final creation.
Functions.do is an agentic workflow platform. It provides a managed, opinionated framework specifically for turning business logic into robust, typesafe software services. It’s less like a single brick and more like a complete LEGO Technic kit with a blueprint. It’s designed to build one thing exceptionally well: reliable, multi-step business processes as code.
This distinction manifests in three key areas: orchestration, type safety, and overall developer experience.
In the real world, a single function rarely acts alone. Business processes like scoring a lead, processing a payment, or generating a report involve multiple steps, dependencies, and conditions.
With AWS Lambda, orchestrating these steps requires another service. You'll typically reach for AWS Step Functions. This means defining your workflow in a separate JSON or YAML configuration, managing IAM permissions between services, and handling state transitions outside of your application code. It's powerful, but it's also complex and decouples your orchestration logic from your business logic.
Functions.do treats orchestration as a first-class citizen. We call these agentic workflows. Functions are designed to be composed, chained, and orchestrated natively.
import { Function } from 'functions.do';
// Define agents for each step in the workflow
const enrichData = Function('enrich-data-v1');
const scoreLead = Function('score-lead-v1');
const assignToRep = Function('assign-to-rep-v1');
// Chain them together to create a sophisticated workflow
async function processNewLead(lead: NewLead) {
const enriched = await enrichData(lead);
const { score } = await scoreLead(enriched);
if (score > 75) {
await assignToRep({ ...enriched, score });
}
}
Our platform manages the state, execution order, error handling, and retries between these function calls automatically. Your business process lives as simple, readable code, not as complex infrastructure configuration.
How do you ensure the data flowing into your function is correct?
With AWS Lambda, input validation is your responsibility. For every single function, you have to write boilerplate code to parse the incoming event, check for required fields, validate data types, and handle errors if the payload is malformed. This is repetitive, error-prone, and clutters your core logic.
Functions.do integrates type safety into the platform's core. By leveraging TypeScript, we automatically validate inputs against your type definitions before the function ever runs. This is what we mean by "Business-as-Code."
Consider our scoreLead function:
import { Function } from 'functions.do';
// Define the input type for your function
interface Lead {
companySize: number;
industry: string;
hasBudget: boolean;
}
// Create a function agent
const scoreLead = Function<Lead>('score-lead-v1');
// This call is guaranteed to have the correct shape.
// An incorrect call would fail validation before execution.
const { score, reason } = await scoreLead({
companySize: 250,
industry: 'SaaS',
hasBudget: true,
});
If you attempt to call this function with companySize: "large", the platform will reject the request with a clear error, protecting your service from bad data. This catches bugs at the integration point, not deep inside your business logic, leading to more robust and reliable applications.
Ultimately, the goal is to ship value to your customers. Time spent configuring YAML files, setting up IAM roles, and debugging VPC connections is time not spent writing the code that makes your business unique.
The AWS Lambda workflow keeps you bouncing between your IDE and the AWS Console (or CloudFormation/Terraform files). The focus is often on the infrastructure that runs the code.
The Functions.do workflow is designed to keep you in your IDE, focused on the code that runs the business. You define your types and write your logic. You deploy and manage your functions directly from our SDK or by connecting your Git repository. The platform handles the rest:
You don't configure API gateways or write Step Function state machines. You write TypeScript.
Choose AWS Lambda when you need granular control over the compute environment, are building a system that doesn't fit a business workflow model, or have a team of experts dedicated to managing the complexities of the AWS ecosystem.
Choose Functions.do when your goal is to translate business processes into reliable software services as quickly as possible. Choose us when you value built-in type safety, native orchestration, and want to empower your developers to focus on delivering value instead of managing infrastructure.
AWS Lambda provides the compute. Functions.do provides the framework, the guardrails, and the blueprint to build reliable applications on top of it.
Ready to stop wiring things together and start building? Explore Functions.do and see how our code-driven, agentic workflow platform can accelerate your next project.