In today's digital landscape, businesses don't just sell products; they deliver services. From onboarding a new customer to processing an insurance claim or orchestrating a complex logistics chain, these multi-step processes are the lifeblood of your operation. Yet, how are they typically managed? Often, through a fragile web of manual handoffs, disconnected spreadsheets, brittle scripts, and endless email chains.
This approach doesn't scale. It’s opaque, error-prone, and slow to change.
What if you could treat a complex business service with the same discipline and power as you treat application code? What if you could define, version, test, and deploy a business process like a piece of software? This is the core principle behind Services-as-Software, a revolutionary approach to workflow orchestration. And service.do is the platform built to make it a reality.
If you're a developer or an engineering leader, you've seen the chaos firsthand:
These challenges create technical debt and, more importantly, they stifle business agility. You can't innovate or respond to market changes quickly when your core processes are locked in a rigid, manual structure.
The Services-as-Software paradigm, also known as Business-as-Code, proposes a simple but powerful shift: define your business processes in code.
By representing workflows as version-controlled software artifacts, you gain the full power of modern software development practices:
service.do is the definitive Business-as-Code Orchestration platform, designed to help you go from complex, messy processes to simple, reliable software.
Talk is cheap. Let's see how you can use service.do to define a customer onboarding service. This process typically involves multiple steps across different systems: identity verification, account creation, and communication.
With service.do, you define this entire orchestration as a clear, declarative workflow.
import { Service, Workflow } from '@do/sdk';
// Define the workflow for onboarding a new customer
const onboardCustomerWorkflow = new Workflow('onboard-customer-workflow', {
steps: [
{
name: 'Verify Customer Identity',
uses: 'identity.do/verify',
inputs: {
email: '{{ trigger.body.email }}',
document: '{{ trigger.body.documentId }}'
}
},
{
name: 'Create User Account',
uses: 'account.do/create',
needs: ['Verify Customer Identity'],
inputs: {
email: '{{ steps.Verify Customer Identity.outputs.email }}',
status: '{{ steps.Verify Customer Identity.outputs.status }}'
}
},
{
name: 'Send Welcome Email',
uses: 'email.do/send',
needs: ['Create User Account'],
inputs: {
to: '{{ steps.Create User Account.outputs.email }}',
template: 'welcome-email'
}
}
]
});
// Expose the workflow as a callable service
export const OnboardCustomer = new Service('onboard-customer', {
workflow: onboardCustomerWorkflow,
// Make this service available via a public API endpoint
trigger: 'api'
});
Let's break down what's happening here:
No more glue code. No more manual handoffs. Just a clean, readable, and robust definition of your business service.
A Service on the .do platform is a runnable business process, defined as code. It orchestrates a series of steps (a Workflow) to accomplish a specific business outcome, like onboarding a customer or processing a claim. Services are version-controlled, testable, and callable via simple APIs.
While a traditional API might perform a single task (e.g., fetch user data), a Service orchestrates multiple, potentially long-running, steps across different domains. It manages state, dependencies, and error handling for the entire business process, providing a higher level of abstraction than a single function.
Absolutely. The platform is designed for composition. A step within one Service's Workflow can call another Service. This allows you to build highly complex, enterprise-grade processes from smaller, reusable, and maintainable service components.
Services can be triggered in multiple ways. You can expose a Service as a public API endpoint for on-demand execution, schedule it to run at specific intervals, or trigger it based on events from other systems or .do domains.
Adopting the Services-as-Software model with service.do delivers transformative benefits:
It's time to stop wrestling with invisible, unmanageable processes. It's time to start delivering services as software.
Ready to transform your business operations? Visit service.do today to get started and turn your most complex services into simple, reliable software.