Server-Side Composition
You can compose capabilities using ctx.call or ctx.parallel within your
functions. This allows you to build complex workflows from simple, reusable capabilities.
Sequential Composition
Call another capability and await its result.
export default async function create(input, ctx: Ctx) {
const user = await ctx.call("db.createUser", input);
await ctx.call("email.sendWelcome", { email: user.email });
return user;
}
Parallel Execution
Run multiple capabilities concurrently.
const [users, posts] = await ctx.parallel([
{ fn: "user.list" },
{ fn: "post.list" },
]);