Skip to main content

Events Module

The events module installs a database history adapter when no custom history adapter is configured. It records emitted events for inspection and analytics. Records expire after EVENTS_TTL_SECONDS (default: two days); use the audit logging pipeline for longer retention.

Configuration Options​

The events module has no configuration options.

Module API​

Access via modules.events in the Unchained API context.

Queries​

MethodArgumentsDescription
findEvent{ eventId }, options?Find a specific event
findEvents{ limit?, offset?, ...query }List events with pagination
countqueryCount events matching criteria
getReport{ dateRange?, types? }Get aggregated event statistics

Usage​

// List recent order events
const events = await modules.events.findEvents({
types: ['ORDER_CREATE', 'ORDER_CHECKOUT', 'ORDER_CONFIRMED'],
limit: 50,
});

// Get event statistics for a date range
const report = await modules.events.getReport({
types: ['ORDER_CONFIRMED'],
dateRange: {
start: new Date('2024-01-01'),
end: new Date('2024-12-31'),
},
});

// Count specific events
const count = await modules.events.count({
types: ['PRODUCT_UPDATE'],
});

Events​

The events module does not emit events itself — it receives and stores events emitted by all other modules.

Event Types​

Every module emits events for state changes. Common patterns:

ModuleEvents
OrdersORDER_CREATE, ORDER_UPDATE, ORDER_CHECKOUT, ORDER_CONFIRMED, ORDER_FULFILLED, ORDER_REJECTED
ProductsPRODUCT_CREATE, PRODUCT_UPDATE, PRODUCT_REMOVE, PRODUCT_PUBLISH, PRODUCT_UNPUBLISH
UsersUSER_CREATE, USER_UPDATE, USER_REMOVE

See individual module documentation for complete event lists.