Event Tables
SpacetimeDB: Event Tables ↗
Event tables use the same Stdb.table(...) builder with event: true.
import * as Effect from "effect/Effect"import * as Stream from "effect/Stream"import * as Stdb from "effect-spacetimedb"
const presenceEvent = Stdb.table("presenceEvent", { public: true, event: true, columns: { userId: Stdb.string(), kind: Stdb.literal("joined", "left"), },})
const Module = Stdb.StdbModule.make("presence", {}).addTables(presenceEvent)const Example = Stdb.project(Module.spec)
const program = Effect.gen(function* () { const session = yield* Example.client.ws.Session yield* session.streamEventTable("presenceEvent").pipe( Stream.runForEach((event) => Effect.log(`presence ${event.row.userId} ${event.row.kind}`), ), )})effect-spacetimedb separates public persistent table targets
from public event-table targets in Stdb.project(...).targets. Use
Example.targets.eventTables.presenceEvent for direct target subscriptions and
streamEventTable("presenceEvent") for insert-only event streams.
Not affiliated with SpacetimeDB (Clockwork Laboratories) or Effect (Effectful Technologies).