Skip to main content

Events Module

The events module persists all emitted events to the database for auditing, analytics, and event sourcing patterns.

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.