@@ -129,7 +129,7 @@ const client = new pg.Client({
129129});
130130await client .connect ();
131131
132- const processor = EventProcessor (createProcessorClient (client ), {
132+ const processor = EventProcessor (createProcessorClient ({ querier: client } ), {
133133 UserCreated: {
134134 // Handlers are processed concurrently and independently with retries
135135 // If one handler fails, others continue processing
@@ -191,15 +191,19 @@ For better performance, you can set up wakeup signals to reduce polling frequenc
191191// PostgreSQL: Use Postgres NOTIFY
192192import { createWakeupEmitter } from " txob/pg" ;
193193
194- const wakeupEmitter = await createWakeupEmitter (clientConfig , {
194+ const wakeupEmitter = await createWakeupEmitter ({
195+ listenClientConfig: clientConfig ,
195196 createTrigger: true ,
196197 querier: client ,
197198});
198199
199200// MongoDB: Use Change Streams
200201import { createWakeupEmitter } from " txob/mongodb" ;
201202
202- const wakeupEmitter = await createWakeupEmitter (mongoClient , " myapp" );
203+ const wakeupEmitter = await createWakeupEmitter ({
204+ mongo: mongoClient ,
205+ db: " myapp" ,
206+ });
203207
204208// Use with EventProcessor
205209const processor = new EventProcessor ({
@@ -492,11 +496,11 @@ const client = new pg.Client({
492496});
493497await client .connect ();
494498
495- const processorClient = createProcessorClient (
496- client ,
497- " events" , // Optional: table name (default: "events")
498- 100 , // Optional: max events per poll (default: 100)
499- );
499+ const processorClient = createProcessorClient ({
500+ querier: client ,
501+ table: " events" , // Optional: table name (default: "events")
502+ limit: 100 , // Optional: max events per poll (default: 100)
503+ } );
500504```
501505
502506** 4. (Optional) Set up wakeup signals to reduce polling:**
@@ -506,7 +510,8 @@ import { createWakeupEmitter } from "txob/pg";
506510
507511// Create a wakeup emitter using Postgres NOTIFY
508512// This will automatically create a trigger that sends NOTIFY on INSERT
509- const wakeupEmitter = await createWakeupEmitter (clientConfig , {
513+ const wakeupEmitter = await createWakeupEmitter ({
514+ listenClientConfig: clientConfig ,
510515 createTrigger: true ,
511516 querier: client ,
512517 table: " events" , // Optional: table name (default: "events")
@@ -552,12 +557,12 @@ await eventsCollection.createIndex({ correlation_id: 1 });
552557``` typescript
553558import { createProcessorClient } from " txob/mongodb" ;
554559
555- const processorClient = createProcessorClient (
556- mongoClient ,
557- " myapp" , // Database name
558- " events" , // Optional: collection name (default: "events")
559- 100 , // Optional: max events per poll (default: 100)
560- );
560+ const processorClient = createProcessorClient ({
561+ mongo: mongoClient ,
562+ db: " myapp" , // Database name
563+ collection: " events" , // Optional: collection name (default: "events")
564+ limit: 100 , // Optional: max events per poll (default: 100)
565+ } );
561566```
562567
563568** 3. (Optional) Set up wakeup signals to reduce polling:**
@@ -567,7 +572,9 @@ import { createWakeupEmitter } from "txob/mongodb";
567572
568573// Create a wakeup emitter using MongoDB Change Streams
569574// Note: Requires a replica set or sharded cluster
570- const wakeupEmitter = await createWakeupEmitter (mongoClient , " myapp" , {
575+ const wakeupEmitter = await createWakeupEmitter ({
576+ mongo: mongoClient ,
577+ db: " myapp" ,
571578 collection: " events" , // Optional: collection name (default: "events")
572579});
573580
@@ -712,7 +719,7 @@ await client.connect();
712719
713720// 3. Create and start the processor
714721const processor = EventProcessor (
715- createProcessorClient <EventType >(client ),
722+ createProcessorClient <EventType >({ querier: client } ),
716723 {
717724 UserCreated: {
718725 sendEmail : async (event , { signal }) => {
@@ -833,7 +840,7 @@ gracefulShutdown(server, {
833840### Multiple Event Types
834841
835842``` typescript
836- const processor = EventProcessor (createProcessorClient (client ), {
843+ const processor = EventProcessor (createProcessorClient ({ querier: client } ), {
837844 UserCreated: {
838845 sendWelcomeEmail : async (event ) => {
839846 /* ... */
@@ -926,7 +933,7 @@ const kafka = new Kafka({ brokers: ["localhost:9092"] });
926933const producer = kafka .producer ();
927934await producer .connect ();
928935
929- const processor = EventProcessor (createProcessorClient (client ), {
936+ const processor = EventProcessor (createProcessorClient ({ querier: client } ), {
930937 UserCreated: {
931938 // Publish to Kafka with guaranteed consistency
932939 publishToKafka : async (event ) => {
@@ -980,7 +987,7 @@ const client = new pg.Client({
980987});
981988await client .connect ();
982989
983- const processor = EventProcessor (createProcessorClient (client ), {
990+ const processor = EventProcessor (createProcessorClient ({ querier: client } ), {
984991 // All your handlers...
985992});
986993
@@ -1050,11 +1057,11 @@ Creates a PostgreSQL processor client.
10501057``` typescript
10511058import { createProcessorClient } from " txob/pg" ;
10521059
1053- createProcessorClient <EventType >(
1054- client : pg .Client ,
1055- tableName ?: string , // Default: "events"
1056- limit ?: number // Default: 100
1057- ): TxOBProcessorClient < EventType >
1060+ createProcessorClient <EventType >(opts : {
1061+ querier : pg .Client ;
1062+ table ?: string ; // Default: "events"
1063+ limit ?: number ; // Default: 100
1064+ } ): TxOBProcessorClient < EventType >
10581065```
10591066
10601067### ` createProcessorClient ` (MongoDB)
@@ -1064,12 +1071,12 @@ Creates a MongoDB processor client.
10641071``` typescript
10651072import { createProcessorClient } from " txob/mongodb" ;
10661073
1067- createProcessorClient <EventType >(
1068- mongo : mongodb .MongoClient ,
1069- db : string , // Database name
1070- collectionName ?: string , // Default: "events"
1071- limit ?: number // Default: 100
1072- ): TxOBProcessorClient < EventType >
1074+ createProcessorClient <EventType >(opts : {
1075+ mongo: mongodb .MongoClient ;
1076+ db : string ; // Database name
1077+ collection ?: string ; // Default: "events"
1078+ limit ?: number ; // Default: 100
1079+ } ): TxOBProcessorClient < EventType >
10731080```
10741081
10751082### ` TxOBError `
@@ -1110,7 +1117,8 @@ Creates a Postgres NOTIFY-based wakeup emitter to reduce polling frequency.
11101117``` typescript
11111118import { createWakeupEmitter } from " txob/pg" ;
11121119
1113- const wakeupEmitter = await createWakeupEmitter (clientConfig , {
1120+ const wakeupEmitter = await createWakeupEmitter ({
1121+ listenClientConfig: clientConfig ,
11141122 createTrigger: true , // Automatically create database trigger
11151123 querier: client , // Required if createTrigger is true
11161124 table: " events" , // Optional: table name (default: "events")
@@ -1127,7 +1135,9 @@ Creates a MongoDB Change Stream-based wakeup emitter to reduce polling frequency
11271135``` typescript
11281136import { createWakeupEmitter } from " txob/mongodb" ;
11291137
1130- const wakeupEmitter = await createWakeupEmitter (mongoClient , " myapp" , {
1138+ const wakeupEmitter = await createWakeupEmitter ({
1139+ mongo: mongoClient ,
1140+ db: " myapp" ,
11311141 collection: " events" , // Optional: collection name (default: "events")
11321142});
11331143```
@@ -1299,7 +1309,7 @@ If using `FOR UPDATE SKIP LOCKED` properly (which txob does), stuck events are n
12991309- Lower ` maxEventConcurrency `
13001310- Profile handlers for memory leaks
13011311- Archive old events
1302- - Reduce ` limit ` in ` createProcessorClient(client, table, limit) `
1312+ - Reduce ` limit ` in ` createProcessorClient({ querier: client, table, limit } ) `
13031313
13041314### Duplicate handler executions
13051315
@@ -1578,7 +1588,7 @@ type EventType = keyof typeof eventTypes;
15781588
15791589// TypeScript will enforce all event types have handlers
15801590const processor = EventProcessor <EventType >(
1581- createProcessorClient <EventType >(client ),
1591+ createProcessorClient <EventType >({ querier: client } ),
15821592 {
15831593 UserCreated: {
15841594 /* handlers */
0 commit comments