export class WorkflowOrchestrator extends Effect.Service<WorkflowOrchestrator>()(
'@repo/worker/workflows/WorkflowOrchestrator',
{
effect: Effect.gen(function* () {
const consumer = yield* Consumer.make('workflows', Schema.Union(UserEvent.UserRegistered));
return {
waitUntilReady: consumer.waitUntilReady,
consume: consumer.consume(event => {
return Match.valueTags(event.body, {
UserRegistered: body => Workflows.UserRegistered.execute(body)
}).pipe(Effect.forkScoped, Effect.as(true));
})
};
})
}
) {}
export class WorkflowOrchestrator extends Effect.Service<WorkflowOrchestrator>()(
'@repo/worker/workflows/WorkflowOrchestrator',
{
effect: Effect.gen(function* () {
const consumer = yield* Consumer.make('workflows', Schema.Union(UserEvent.UserRegistered));
return {
waitUntilReady: consumer.waitUntilReady,
consume: consumer.consume(event => {
return Match.valueTags(event.body, {
UserRegistered: body => Workflows.UserRegistered.execute(body)
}).pipe(Effect.forkScoped, Effect.as(true));
})
};
})
}
) {}