We are typically taught to build API's around CRUD operations:

This may work well for basic systems, but it is hardly the case in practice. To explain the concept, let's consider a scenario where a user is interacting with a fintech application and applying for a personal loan.

User makes these selections :

In real life, the backend doesn’t simply update one DB record. It validates business rules. updates multiple entities, triggers downstream services, emits events, and sometimes starts synchronous processing.

Yet we abstract all actions behind a single endpoint

PUT /entity/{id}

This confuses the user as he now no longer updates a table but triggers a business process. This is where Workflow API’s come in the picture.

The Limitations of CRUD

CRUD API's assume simple one to one db interactions..

They work well when:

But they break down when:

As systems scale, behavior becomes more important than structure.

CRUD models data.

Workflow APIs model behavior.

What Is a Workflow API?

Workflow API is an endpoint designed around a business action rather than a raw resource update.

Instead of

PUT /loan/{id}

We expose:

POST /loan/{id}/submit
POST /loan/{id}/approve
POST /loan/{id}/cancel

These endpoints:

They answer the question about what the user is trying to do rather than what table we are updating.

Identifying a Workflow

If an endpoint description goes like:

"When the user clicks this button, we validate X, update Y, notify Z, and trigger W…"

You are looking at a workflow rather than a CRUD operation.

For example, consider a fintech scenario:

User clicks the "Accept Loan Offer" button

Behind the scenes, the system will

  1. Validate the offer is still valid
  2. Lock the APR
  3. Update Loan status
  4. Generate loan docs
  5. Trigger e-sign workflow
  6. Notify risk systems
  7. Create funding schedule

Calling this:

PUT /loan/{id}

Hides the intent

Instead:

POST /loan/{id}/accept

Clearly reveals what is happening

Two Typical Types of Workflow API's

1. Action-Based Workflow API's

These represent domain state transitions.

Examples:

They:

These are common in systems using Domain Driven Design.

2. Client-Specific Workflow API's

Sometimes an API exists purely to serve a specific client experience.

For example, a mobile dashboard might need:

Instead of four calls:

GET user/profile  
GET /user/applications/active  
GET /user/loans
GET /user/payments/upcoming

Client makes

GET /user/dashboard

This endpoint:

This pattern overlaps with the Backend-for-Frontend approach.

Why This Distinction Matters

When we design API's around business intent:

Instead of leaking internal table structures to the public, we expose stable business actions.

Architectural Considerations

Workflow API's introduce additional responsibilities.

Idempotency

If the client retries, should the workflow execute again?

Failure Handling

What happens if step 4 fails after steps 1–3 succeed?

Observability

Can you trace the workflow across services?

Transaction Boundaries

Is the process atomic or eventually consistent?

In distributed systems, workflow APIs often:

They are more complex than CRUD, but that complexity already exists. Workflow API's simply make it explicit.

CRUD vs Workflow API's

CRUD API

Workflow API

Resource-focused

Action-focused

Single-entity change

Multi-step orchestration

Data modeling

Business modeling

Simple DB mapping

Domain-aware process

Structure-oriented

Intent-oriented

Final Conclusion

CRUD is foundational. Every system needs it. Modern, production-grade systems are driven by workflows, not just table updates.

When an endpoint:

It's not just an update endpoint. It's a Workflow API.

Designing API's around workflows instead of tables is one of the most important shifts in building real-world systems.