API reference / @node-ts/bus-postgres / PostgresPersistence
Class: PostgresPersistence
Defined in: packages/bus-postgres/src/postgres-persistence.ts:82
Infrastructure that provides the ability to persist workflow state for long running processes.
Workflow state is passed to and returned from the persistence as plain JSON values (Dates as ISO strings, Maps as objects, Sets as arrays and bigints as strings). The bus converts it to and from its classes with its own serializer and message types, so one persistence instance can be shared by several buses. A shared persistence is prepared and initialized by each bus, and only disposed by the last bus that uses it.
Implements
Constructors
Constructor
new PostgresPersistence(configuration, postgres?): PostgresPersistence;Defined in: packages/bus-postgres/src/postgres-persistence.ts:85
Parameters
| Parameter | Type |
|---|---|
configuration | PostgresConfiguration |
postgres | Pool |
Returns
PostgresPersistence
Methods
dispose()
dispose(): Promise<void>;Defined in: packages/bus-postgres/src/postgres-persistence.ts:103
If provided, will dispose any resources related to the persistence. This is where things like closing database connections should occur.
Returns
Promise<void>
Implementation of
getWorkflowState()
getWorkflowState<WorkflowStateType, MessageType>(
workflowStateConstructor,
messageMap,
message,
attributes,
includeCompleted?
): Promise<WorkflowStateType[]>;Defined in: packages/bus-postgres/src/postgres-persistence.ts:126
Retrieves all workflow state models that match the given messageMap criteria
Type Parameters
| Type Parameter |
|---|
WorkflowStateType extends WorkflowState |
MessageType extends Message |
Parameters
| Parameter | Type | Default value | Description |
|---|---|---|---|
workflowStateConstructor | ClassConstructor<WorkflowStateType> | undefined | The workflow model type to retrieve |
messageMap | MessageWorkflowMapping<MessageType, WorkflowStateType> | undefined | How the message is mapped to workflow state models |
message | MessageType | undefined | The message to map to workflow state |
attributes | MessageAttributes | undefined | - |
includeCompleted | boolean | false | If completed workflow state items should also be returned. False by default |
Returns
Promise<WorkflowStateType[]>
the matching workflow state as it was saved. The bus restores its classes, so it doesn't need to be converted.
Implementation of
initialize()
initialize(): Promise<void>;Defined in: packages/bus-postgres/src/postgres-persistence.ts:96
If provided, initializes the persistence implementation. This is where database connections are started.
Returns
Promise<void>
Implementation of
initializeWorkflow()
initializeWorkflow<WorkflowStateType>(workflowStateConstructor, messageWorkflowMappings): Promise<void>;Defined in: packages/bus-postgres/src/postgres-persistence.ts:109
Allows the persistence implementation to set up its internal structure to support the workflow state that it will be persisting. Typically for a database this could mean setting up the internal table schema to support persisting of each of the workflow state models.
Type Parameters
| Type Parameter |
|---|
WorkflowStateType extends WorkflowState |
Parameters
| Parameter | Type |
|---|---|
workflowStateConstructor | ClassConstructor<WorkflowStateType> |
messageWorkflowMappings | MessageWorkflowMapping<Message, WorkflowState>[] |
Returns
Promise<void>
Implementation of
Persistence.initializeWorkflow
prepare()
prepare(coreDependencies): void;Defined in: packages/bus-postgres/src/postgres-persistence.ts:90
An optional function that is called before startup that will provide core dependencies to the persistence. This can be used to fetch loggers etc that are used in initialization steps. A persistence shared by several buses is prepared by each of them.
Parameters
| Parameter | Type | Description |
|---|---|---|
coreDependencies | CoreDependencies | the dependencies of the bus that's preparing the persistence |
Returns
void
Implementation of
saveWorkflowState()
saveWorkflowState<WorkflowStateType>(workflowState): Promise<void>;Defined in: packages/bus-postgres/src/postgres-persistence.ts:184
Saves a new workflow state model or updates an existing one. Persistence implementations should take care to observe the change in $version of the workflow state model when persisting to ensure race conditions don't occur.
Type Parameters
| Type Parameter |
|---|
WorkflowStateType extends WorkflowState |
Parameters
| Parameter | Type | Description |
|---|---|---|
workflowState | WorkflowStateType | the workflow state as plain JSON values, ready to store as it is |
Returns
Promise<void>