const MessageStorageLive = MessageStorage.layerMemory.pipe(Layer.provide(ShardingConfig.layerDefaults));
const RunnersLive = Runners.layerNoop.pipe(
Layer.provide(ShardingConfig.layerDefaults),
Layer.provide(MessageStorageLive)
);
const ShardManagerClientLive = Layer.effect(ShardManager.ShardManagerClient, ShardManager.makeClientLocal).pipe(
Layer.provide(ShardingConfig.layerDefaults)
);
const ShardingLive = Sharding.layer.pipe(
Layer.provide(
Layer.mergeAll(
RunnersLive,
ShardStorage.layerMemory,
MessageStorageLive,
ShardManagerClientLive,
ShardingConfig.layerDefaults
)
)
);
const WorkflowEngineLayer = ClusterWorkflowEngine.layer.pipe(
Layer.provide(NodeClusterRunnerSocket.layer({ storage: 'sql' })),
Layer.provide(Layer.mergeAll(DatabaseLive, ShardingLive, MessageStorageLive))
);
const EnvLayer = TestWorkflowLive.pipe(Layer.provide(WorkflowEngineLayer));
program.pipe(Effect.provide(EnvLayer), NodeRuntime.runMain);
const MessageStorageLive = MessageStorage.layerMemory.pipe(Layer.provide(ShardingConfig.layerDefaults));
const RunnersLive = Runners.layerNoop.pipe(
Layer.provide(ShardingConfig.layerDefaults),
Layer.provide(MessageStorageLive)
);
const ShardManagerClientLive = Layer.effect(ShardManager.ShardManagerClient, ShardManager.makeClientLocal).pipe(
Layer.provide(ShardingConfig.layerDefaults)
);
const ShardingLive = Sharding.layer.pipe(
Layer.provide(
Layer.mergeAll(
RunnersLive,
ShardStorage.layerMemory,
MessageStorageLive,
ShardManagerClientLive,
ShardingConfig.layerDefaults
)
)
);
const WorkflowEngineLayer = ClusterWorkflowEngine.layer.pipe(
Layer.provide(NodeClusterRunnerSocket.layer({ storage: 'sql' })),
Layer.provide(Layer.mergeAll(DatabaseLive, ShardingLive, MessageStorageLive))
);
const EnvLayer = TestWorkflowLive.pipe(Layer.provide(WorkflowEngineLayer));
program.pipe(Effect.provide(EnvLayer), NodeRuntime.runMain);