ObjectStackObjectStack

Events Handlers

Events Handlers protocol schemas

Event Handler Schema

Defines how to handle a specific event

Source: packages/spec/src/kernel/events/handlers.zod.ts

TypeScript Usage

import { EventHandlerSchema, EventPersistenceSchema, EventRouteSchema } from '@objectstack/spec/kernel';
import type { EventHandler, EventPersistence, EventRoute } from '@objectstack/spec/kernel';

// Validate data
const result = EventHandlerSchema.parse(data);

EventHandler

Properties

PropertyTypeRequiredDescription
idstringoptionalUnique handler identifier
eventNamestringName of event to handle (supports wildcards like user.*)
handleranyHandler function
priorityintegerExecution priority (lower numbers execute first)
asyncbooleanExecute in background (true) or block (false)
retry{ maxRetries: integer; backoffMs: integer; backoffMultiplier: number }optionalRetry policy for failed handlers
timeoutMsintegeroptionalHandler timeout in milliseconds
filteranyoptionalOptional filter to determine if handler should execute

EventPersistence

Properties

PropertyTypeRequiredDescription
enabledbooleanEnable event persistence
retentionintegerDays to retain persisted events
filteranyoptionalOptional filter function to select which events to persist
storageEnum<'database' | 'file' | 's3' | 'custom'>Storage backend for persisted events

EventRoute

Properties

PropertyTypeRequiredDescription
fromstringSource event pattern (supports wildcards, e.g., user.* or *.created)
tostring[]Target event names to route to
transformanyoptionalOptional function to transform payload

On this page