Running Loops
createLoopSystem
createLoopSystem(options)
Factory from @loop-engine/sdk:
1createLoopSystem(options: {2 loops: LoopDefinition[]3 store?: LoopStore4 guards?: GuardRegistry5 signals?: boolean6}): {7 engine: LoopEngine8 eventBus: InMemoryEventBus9 signals?: SignalEngine10}loopsis required and becomes the in-memory registry.storedefaults tomemoryStore().guardsdefaults todefaultRegistryfrom@loop-engine/guards.signals: trueadds a defaultSignalEngine.
Pattern 1: zero-config
1import { createLoopSystem } from '@loop-engine/sdk'2 3const { engine, eventBus } = createLoopSystem({ loops: [definition] })Pattern 2: custom store (PostgreSQL adapter)
1import { createLoopSystem } from '@loop-engine/sdk'2import { postgresStore } from '@loop-engine/adapter-postgres'3import { Pool } from 'pg'4 5const pool = new Pool({ connectionString: process.env.DATABASE_URL })6const { engine } = createLoopSystem({7 loops: [definition],8 store: postgresStore(pool)9})Pattern 3: signals enabled
1import { createLoopSystem } from '@loop-engine/sdk'2 3const { signals } = createLoopSystem({4 loops: [definition],5 signals: true6})7 8signals?.subscribe((signal) => {9 console.log(signal.type, signal.subject)10})