In modern software development, applications are rarely monolithic. They are complex ecosystems of interconnected services, APIs, and workflows. But as this ecosystem grows, a critical challenge emerges: how do your applications find and communicate with the services they need, especially when those services can be added, removed, or updated at any time?
Hardcoding endpoints is a recipe for brittle architecture and maintenance headaches. The solution is dynamic service discovery, and services.do provides a powerful, unified registry to bring this capability to the next level—not just for microservices, but for entire business operations.
Imagine your application needs to perform a customer identity verification (KYC) check. In a static world, your code might look like this:
// The old, brittle way
const response = await fetch('https://api.internal/kyc/v1/check', { ... });
This works, until it doesn't. What happens when:
In each case, you're facing a code change, a redeployment, and potential downtime. You're locked into a specific implementation, unable to adapt without manual intervention.
This is where services.do changes the game. It acts as a central registry for all your business capabilities, transforming them from rigid processes into discoverable and manageable Services-as-Software.
Instead of your application needing to know where a service is, it only needs to know what it wants to do. services.do handles the rest, providing a single, consistent API to discover, manage, and consume any registered service.
These aren't just simple functions; they are Agentic Services—complex workflows defined as Business-as-Code that can be invoked with a simple API call.
The true power of a service registry is unlocked when you can interact with it programmatically. The .do SDK makes dynamic service discovery incredibly simple.
Let's see how you can query the registry to find all available services your application has access to.
import { Do } from '@do-inc/sdk';
// 1. Initialize the .do client with your API key
// It's best practice to store keys in environment variables.
const doClient = new Do(process.env.DO_API_KEY);
// 2. List all available services in the registry
// This single API call queries the central registry.
const services = await doClient.services.list();
// 3. Log the response to see what's available
console.log(services);
The output of this simple script would be a structured list of all discoverable services:
{
"data": [
{
"id": "svc_123",
"name": "kyc.do",
"description": "Performs identity verification for new customers.",
...
},
{
"id": "svc_456",
"name": "geocode.do",
"description": "Converts a physical address into geographic coordinates.",
...
}
],
...
}
With this capability, your application can now:
You've officially decoupled your application's logic from the service implementation. Your app is now more resilient, flexible, and scalable.
Q: What is services.do?
A: services.do is the central registry for the .do platform. It allows you to discover, manage, and interact with all available agentic workflows and business services as standardized software endpoints.
Q: How do I add a new service to the registry?
A: Services are created by defining Agentic Workflows using Business-as-Code. Once a workflow is deployed, it's automatically registered and becomes a discoverable and consumable API via services.do.
Q: What is the difference between a Service and a Workflow?
A: A Workflow is the underlying business logic defined as code. A Service is the discoverable, managed, and versioned API endpoint for that workflow, exposed through the services.do registry. It turns the process (Workflow) into a product (Service).
Q: Can I list all services programmatically?
A: Yes, using our SDKs, you can easily list, search, and get details for any service you have access to. This enables dynamic service discovery and integration within your applications.
By moving away from static integrations and embracing dynamic discovery, you empower your applications to adapt and evolve. The services.do platform and its SDK provide the tools to stop hardcoding business logic and start composing intelligent, resilient systems.
Ready to transform your business logic into discoverable Services-as-Software? Explore services.do and supercharge your next project.