@powersync/service-module-mongodb 0.0.0-dev-20261007110800 → 0.0.0-dev-20261015132441

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/CHANGELOG.md +14 -11
  2. package/benchmarks/env.ts +11 -0
  3. package/benchmarks/replication_branch_throughput.benchmark.ts +240 -0
  4. package/dist/api/MongoRouteAPIAdapter.d.ts +5 -0
  5. package/dist/api/MongoRouteAPIAdapter.js +11 -4
  6. package/dist/api/MongoRouteAPIAdapter.js.map +1 -1
  7. package/dist/module/MongoModule.js +1 -0
  8. package/dist/module/MongoModule.js.map +1 -1
  9. package/dist/replication/ChangeStream.d.ts +2 -1
  10. package/dist/replication/ChangeStream.js +164 -150
  11. package/dist/replication/ChangeStream.js.map +1 -1
  12. package/dist/replication/ChangeStreamReplicationJob.js +17 -9
  13. package/dist/replication/ChangeStreamReplicationJob.js.map +1 -1
  14. package/dist/replication/MongoReplicationQueryProvider.d.ts +9 -11
  15. package/dist/replication/MongoReplicationQueryProvider.js.map +1 -1
  16. package/dist/replication/MongoReplicationStream.d.ts +37 -48
  17. package/dist/replication/MongoReplicationStream.js +157 -30
  18. package/dist/replication/MongoReplicationStream.js.map +1 -1
  19. package/dist/replication/MongoReplicationStreamTypes.d.ts +157 -0
  20. package/dist/replication/MongoReplicationStreamTypes.js +19 -0
  21. package/dist/replication/MongoReplicationStreamTypes.js.map +1 -0
  22. package/dist/replication/MongoSnapshotter.js +59 -30
  23. package/dist/replication/MongoSnapshotter.js.map +1 -1
  24. package/dist/replication/estimateFilteredSnapshotCount.d.ts +12 -0
  25. package/dist/replication/estimateFilteredSnapshotCount.js +79 -0
  26. package/dist/replication/estimateFilteredSnapshotCount.js.map +1 -0
  27. package/dist/replication/replication-index.d.ts +1 -0
  28. package/dist/replication/replication-index.js +1 -0
  29. package/dist/replication/replication-index.js.map +1 -1
  30. package/package.json +11 -10
  31. package/src/api/MongoRouteAPIAdapter.ts +12 -5
  32. package/src/module/MongoModule.ts +1 -0
  33. package/src/replication/ChangeStream.ts +183 -173
  34. package/src/replication/ChangeStreamReplicationJob.ts +16 -9
  35. package/src/replication/MongoReplicationQueryProvider.ts +9 -11
  36. package/src/replication/MongoReplicationStream.ts +196 -83
  37. package/src/replication/MongoReplicationStreamTypes.ts +169 -0
  38. package/src/replication/MongoSnapshotter.ts +64 -33
  39. package/src/replication/estimateFilteredSnapshotCount.ts +93 -0
  40. package/src/replication/replication-index.ts +1 -0
  41. package/test/src/change_event_memory.test.ts +33 -0
  42. package/test/src/change_stream_abort.test.ts +110 -0
  43. package/test/src/filtering_example.test.ts +65 -0
  44. package/test/src/filtering_lifecycle.test.ts +101 -0
  45. package/test/src/query_provider_availability.test.ts +1 -0
  46. package/test/src/query_provider_diagnostics.test.ts +55 -0
  47. package/test/src/replication_stream.test.ts +411 -34
  48. package/test/src/snapshot_count.test.ts +146 -0
  49. package/test/src/snapshot_count_integration.test.ts +70 -0
  50. package/test/src/snapshot_query_provider.test.ts +21 -2
  51. package/test/src/stream_progress.test.ts +62 -44
  52. package/test/tsconfig.json +2 -2
  53. package/tsconfig.tsbuildinfo +1 -1
  54. package/vitest.benchmark.config.ts +15 -0
@@ -27,6 +27,7 @@ export class ChangeStreamInvalidatedError extends DatabaseConnectionError {
27
27
  }
28
28
  }
29
29
  export class ChangeStream {
30
+ options;
30
31
  sync_rules;
31
32
  group_id;
32
33
  connection_id = 1;
@@ -63,6 +64,7 @@ export class ChangeStream {
63
64
  lastPersistedResumeTimestamp = 0;
64
65
  lastBatchCheckpoint = 0;
65
66
  constructor(options) {
67
+ this.options = options;
66
68
  this.storage = options.storage;
67
69
  this.metrics = options.metrics;
68
70
  this.group_id = options.storage.replicationStreamId;
@@ -474,6 +476,7 @@ export class ChangeStream {
474
476
  let processingSpan;
475
477
  let receivedBytes = 0;
476
478
  let changesSinceProgress = 0;
479
+ let filteredSinceProgress = null;
477
480
  const stream = this.openChangeStream({
478
481
  lsn: resumeFromLsn,
479
482
  filters,
@@ -494,14 +497,165 @@ export class ChangeStream {
494
497
  let waitForCheckpointLsn = await this.createBatchCheckpoint();
495
498
  let lastKeepalive = performance.now();
496
499
  let lastTxnKey = null;
497
- for await (const item of stream) {
500
+ streamLoop: for await (const sourceBatch of stream) {
501
+ if (this.abortSignal.aborted)
502
+ break;
503
+ for (const { event: changeDocument, hasBufferedChanges } of sourceBatch.events) {
504
+ if (this.abortSignal.aborted)
505
+ break streamLoop;
506
+ this.touch();
507
+ changesSinceProgress++;
508
+ const ns = 'ns' in changeDocument && 'coll' in changeDocument.ns ? changeDocument.ns : undefined;
509
+ if (ns?.coll == CHECKPOINTS_COLLECTION) {
510
+ /**
511
+ * Dropping the database does not provide an `invalidate` event.
512
+ * We typically would receive `drop` events for the collection which we
513
+ * would process below.
514
+ *
515
+ * However we don't commit the LSN after collections are dropped.
516
+ * This prevents the `startAfter` or `resumeToken` from advancing past the drop events.
517
+ * The stream also closes after the drop events.
518
+ * This causes an infinite loop of processing the collection drop events.
519
+ *
520
+ * This check here invalidates the change stream if our `_powersync_checkpoints` collection
521
+ * is dropped. This allows for detecting when the DB is dropped.
522
+ */
523
+ if (changeDocument.operationType == 'drop') {
524
+ throw new ChangeStreamInvalidatedError('Internal collections have been dropped', new Error('_powersync_checkpoints collection was dropped'));
525
+ }
526
+ if (!(changeDocument.operationType == 'insert' ||
527
+ changeDocument.operationType == 'update' ||
528
+ changeDocument.operationType == 'replace')) {
529
+ continue;
530
+ }
531
+ // We handle two types of checkpoint events:
532
+ // 1. "Standalone" checkpoints, typically write checkpoints. We want to process these
533
+ // immediately, regardless of where they were created.
534
+ // 2. "Batch" checkpoints for the current stream. This is used as a form of dynamic rate
535
+ // limiting of commits, so we specifically want to exclude checkpoints from other streams.
536
+ //
537
+ // It may be useful to also throttle commits due to standalone checkpoints in the future.
538
+ // However, these typically have a much lower rate than batch checkpoints, so we don't do that for now.
539
+ const kind = this.checkpointImplementation.event.observe(changeDocument);
540
+ if (kind == 'foreign') {
541
+ // Another stream's barrier - ignore.
542
+ continue;
543
+ }
544
+ else if (kind == 'standalone') {
545
+ // Standalone / write checkpoint received.
546
+ // When we are caught up, commit immediately to keep write checkpoint latency low.
547
+ // Once there is already a batch checkpoint pending, or the driver has buffered more
548
+ // change stream events, collapse standalone checkpoints into the normal batch
549
+ // checkpoint flow to avoid commit churn under sustained load.
550
+ if (hasBufferedChanges && waitForCheckpointLsn == null) {
551
+ // Buffered changes - create a new batch checkpoint to rate limit commits
552
+ using _ = tracer.span('source_checkpoint');
553
+ waitForCheckpointLsn = await this.createBatchCheckpoint();
554
+ continue;
555
+ }
556
+ else if (waitForCheckpointLsn != null) {
557
+ // Skip this checkpoint - wait for the batch checkpoint.
558
+ continue;
559
+ }
560
+ else {
561
+ // No buffered changes, and no batch checkpoint pending - commit immediately.
562
+ }
563
+ }
564
+ // kind == 'own-barrier' falls through to commit.
565
+ const lsn = this.checkpointImplementation.event.lsn(changeDocument);
566
+ if (waitForCheckpointLsn != null &&
567
+ this.checkpointImplementation.event.resolvesBarrier(waitForCheckpointLsn, changeDocument)) {
568
+ waitForCheckpointLsn = null;
569
+ }
570
+ const { checkpointBlocked, checkpointCreated } = await batch.commit(lsn, {
571
+ oldestUncommittedChange: this.replicationLag.oldestUncommittedChange
572
+ });
573
+ if (!checkpointBlocked || checkpointCreated) {
574
+ this.replicationLag.markCommitted();
575
+ }
576
+ }
577
+ else if (changeDocument.operationType == 'insert' ||
578
+ changeDocument.operationType == 'update' ||
579
+ changeDocument.operationType == 'replace' ||
580
+ changeDocument.operationType == 'delete') {
581
+ if (waitForCheckpointLsn == null) {
582
+ using _ = tracer.span('source_checkpoint');
583
+ waitForCheckpointLsn = await this.createBatchCheckpoint();
584
+ }
585
+ const rel = getMongoRelation(changeDocument.ns, this.connections.connectionTag);
586
+ const tables = await this.getRelations(batch, rel, {
587
+ // In most cases, we should not need to snapshot this. But if this is the first time we see the collection
588
+ // for whatever reason, then we do need to snapshot it.
589
+ // This may result in some duplicate operations when a collection is created for the first time after
590
+ // sync config was deployed.
591
+ snapshot: true
592
+ });
593
+ const tablesToReplicate = tables.filter((table) => table.syncAny);
594
+ if (tablesToReplicate.length > 0) {
595
+ this.replicationLag.trackUncommittedChange(
596
+ // Standard MongoDB uses clusterTime, unchanged. DocumentDB has no
597
+ // clusterTime, so fall back to wallTime there for the lag metric.
598
+ changeDocument.clusterTime != null
599
+ ? timestampToDate(changeDocument.clusterTime)
600
+ : (changeDocument.wallTime ?? null));
601
+ const transactionKeyValue = transactionKey(changeDocument);
602
+ if (transactionKeyValue == null || lastTxnKey != transactionKeyValue) {
603
+ // Very crude metric for counting transactions replicated.
604
+ // We ignore operations other than basic CRUD, and ignore changes to _powersync_checkpoints.
605
+ // Individual writes may not have a txnNumber, in which case we count them as separate transactions.
606
+ lastTxnKey = transactionKeyValue;
607
+ transactionsReplicatedMetric.add(1);
608
+ }
609
+ for (const table of tablesToReplicate) {
610
+ await this.writeChange(batch, table, changeDocument);
611
+ }
612
+ }
613
+ }
614
+ else if (changeDocument.operationType == 'drop') {
615
+ const rel = getMongoRelation(changeDocument.ns, this.connections.connectionTag);
616
+ const tables = await this.getRelations(batch, rel, {
617
+ // We're "dropping" this collection, so never snapshot it.
618
+ snapshot: false
619
+ });
620
+ const tablesToDrop = tables.filter((table) => table.syncAny);
621
+ if (tablesToDrop.length > 0) {
622
+ await batch.drop(tablesToDrop);
623
+ }
624
+ this.relationCache.delete(rel);
625
+ }
626
+ else if (changeDocument.operationType == 'rename') {
627
+ const relFrom = getMongoRelation(changeDocument.ns, this.connections.connectionTag);
628
+ const relTo = getMongoRelation(changeDocument.to, this.connections.connectionTag);
629
+ const tablesFrom = await this.getRelations(batch, relFrom, {
630
+ // We're "dropping" this collection, so never snapshot it.
631
+ snapshot: false
632
+ });
633
+ const tablesToDrop = tablesFrom.filter((table) => table.syncAny);
634
+ if (tablesToDrop.length > 0) {
635
+ await batch.drop(tablesToDrop);
636
+ }
637
+ this.relationCache.delete(relFrom);
638
+ // Here we do need to snapshot the new table
639
+ const collection = await this.getCollectionInfo(relTo.schema, relTo.name);
640
+ await this.handleRelation(batch, relTo, {
641
+ // This is a new (renamed) collection, so always snapshot it.
642
+ snapshot: true,
643
+ collectionInfo: collection
644
+ });
645
+ }
646
+ }
498
647
  if (this.abortSignal.aborted)
499
648
  break;
500
649
  this.touch();
501
- if (item.type == 'progress') {
502
- const { resumeToken, filteredCount } = item;
650
+ const batchFilteredCount = sourceBatch.metadata.filteredCount;
651
+ if (batchFilteredCount != null) {
652
+ filteredSinceProgress = (filteredSinceProgress ?? 0) + batchFilteredCount;
653
+ }
654
+ const resumeToken = sourceBatch.getResumeToken();
655
+ if (resumeToken != null) {
656
+ const filteredCount = filteredSinceProgress;
503
657
  if (changesSinceProgress == 0) {
504
- // No retained changes since the previous progress item: this is either idle or filtered-only traffic.
658
+ // No retained changes since the previous progress boundary: this is either idle or filtered-only traffic.
505
659
  // Case 1: No pending barrier and the keepalive interval has elapsed. Advance checkpoints as below,
506
660
  // then flush and save the resume token.
507
661
  // Case 2: Idle traffic with a recent keepalive. Skip this resume update, whether or not a barrier
@@ -511,7 +665,7 @@ export class ChangeStream {
511
665
  // progress still saves its token even during the keepalive interval, so excluded work is resumable.
512
666
  const hadRecentKeepalive = performance.now() - lastKeepalive < this.keepaliveIntervalMs;
513
667
  if (waitForCheckpointLsn == null && !hadRecentKeepalive) {
514
- if (filteredCount > 0) {
668
+ if ((filteredCount ?? 0) > 0) {
515
669
  // Case 1a: A transaction can span batches: this batch may contain only filtered changes,
516
670
  // while retained changes from the same transaction are still unread. They share a timestamp,
517
671
  // so publishing a checkpoint here could acknowledge the transaction before its data is saved.
@@ -529,7 +683,7 @@ export class ChangeStream {
529
683
  this.touch();
530
684
  lastKeepalive = performance.now();
531
685
  }
532
- else if (filteredCount == 0 && hadRecentKeepalive) {
686
+ else if ((filteredCount ?? 0) == 0 && hadRecentKeepalive) {
533
687
  // Case 2: Only idle progress skips resume persistence. Cases 1 and 3 fall through below.
534
688
  continue;
535
689
  }
@@ -543,160 +697,20 @@ export class ChangeStream {
543
697
  this.lastPersistedResumeTimestamp = timestamp?.getTime() ?? Date.now();
544
698
  processingSpan?.end();
545
699
  const durationsMicroseconds = outerSpan.end();
546
- this.logger.info(`Processed ${changesSinceProgress} changes and ${filteredCount} filtered events`, {
700
+ const filteringDescription = filteredCount == null ? '' : ` and ${filteredCount} filtered events`;
701
+ this.logger.info(`Processed ${changesSinceProgress} changes${filteringDescription}`, {
547
702
  count: changesSinceProgress,
548
- filteredCount,
703
+ ...(filteredCount == null ? {} : { filteredCount }),
549
704
  bytes: receivedBytes,
550
705
  duration: processingSpan?.durationMillis,
551
706
  t: durationsMicroseconds
552
707
  });
553
708
  changesSinceProgress = 0;
709
+ filteredSinceProgress = null;
554
710
  receivedBytes = 0;
555
711
  outerSpan = tracer.span('batch');
556
712
  continue;
557
713
  }
558
- // The shared reader has already reassembled complete events and normalized their namespaces.
559
- const changeDocument = item.event;
560
- changesSinceProgress++;
561
- const ns = 'ns' in changeDocument && 'coll' in changeDocument.ns ? changeDocument.ns : undefined;
562
- if (ns?.coll == CHECKPOINTS_COLLECTION) {
563
- /**
564
- * Dropping the database does not provide an `invalidate` event.
565
- * We typically would receive `drop` events for the collection which we
566
- * would process below.
567
- *
568
- * However we don't commit the LSN after collections are dropped.
569
- * This prevents the `startAfter` or `resumeToken` from advancing past the drop events.
570
- * The stream also closes after the drop events.
571
- * This causes an infinite loop of processing the collection drop events.
572
- *
573
- * This check here invalidates the change stream if our `_powersync_checkpoints` collection
574
- * is dropped. This allows for detecting when the DB is dropped.
575
- */
576
- if (changeDocument.operationType == 'drop') {
577
- throw new ChangeStreamInvalidatedError('Internal collections have been dropped', new Error('_powersync_checkpoints collection was dropped'));
578
- }
579
- if (!(changeDocument.operationType == 'insert' ||
580
- changeDocument.operationType == 'update' ||
581
- changeDocument.operationType == 'replace')) {
582
- continue;
583
- }
584
- // We handle two types of checkpoint events:
585
- // 1. "Standalone" checkpoints, typically write checkpoints. We want to process these
586
- // immediately, regardless of where they were created.
587
- // 2. "Batch" checkpoints for the current stream. This is used as a form of dynamic rate
588
- // limiting of commits, so we specifically want to exclude checkpoints from other streams.
589
- //
590
- // It may be useful to also throttle commits due to standalone checkpoints in the future.
591
- // However, these typically have a much lower rate than batch checkpoints, so we don't do that for now.
592
- const kind = this.checkpointImplementation.event.observe(changeDocument);
593
- if (kind == 'foreign') {
594
- // Another stream's barrier - ignore.
595
- continue;
596
- }
597
- else if (kind == 'standalone') {
598
- // Standalone / write checkpoint received.
599
- // When we are caught up, commit immediately to keep write checkpoint latency low.
600
- // Once there is already a batch checkpoint pending, or the driver has buffered more
601
- // change stream events, collapse standalone checkpoints into the normal batch
602
- // checkpoint flow to avoid commit churn under sustained load.
603
- const hasBufferedChanges = item.hasBufferedChanges;
604
- if (hasBufferedChanges && waitForCheckpointLsn == null) {
605
- // Buffered changes - create a new batch checkpoint to rate limit commits
606
- using _ = tracer.span('source_checkpoint');
607
- waitForCheckpointLsn = await this.createBatchCheckpoint();
608
- continue;
609
- }
610
- else if (waitForCheckpointLsn != null) {
611
- // Skip this checkpoint - wait for the batch checkpoint.
612
- continue;
613
- }
614
- else {
615
- // No buffered changes, and no batch checkpoint pending - commit immediately.
616
- }
617
- }
618
- // kind == 'own-barrier' falls through to commit.
619
- const lsn = this.checkpointImplementation.event.lsn(changeDocument);
620
- if (waitForCheckpointLsn != null &&
621
- this.checkpointImplementation.event.resolvesBarrier(waitForCheckpointLsn, changeDocument)) {
622
- waitForCheckpointLsn = null;
623
- }
624
- const { checkpointBlocked, checkpointCreated } = await batch.commit(lsn, {
625
- oldestUncommittedChange: this.replicationLag.oldestUncommittedChange
626
- });
627
- if (!checkpointBlocked || checkpointCreated) {
628
- this.replicationLag.markCommitted();
629
- }
630
- }
631
- else if (changeDocument.operationType == 'insert' ||
632
- changeDocument.operationType == 'update' ||
633
- changeDocument.operationType == 'replace' ||
634
- changeDocument.operationType == 'delete') {
635
- if (waitForCheckpointLsn == null) {
636
- using _ = tracer.span('source_checkpoint');
637
- waitForCheckpointLsn = await this.createBatchCheckpoint();
638
- }
639
- const rel = getMongoRelation(changeDocument.ns, this.connections.connectionTag);
640
- const tables = await this.getRelations(batch, rel, {
641
- // In most cases, we should not need to snapshot this. But if this is the first time we see the collection
642
- // for whatever reason, then we do need to snapshot it.
643
- // This may result in some duplicate operations when a collection is created for the first time after
644
- // sync config was deployed.
645
- snapshot: true
646
- });
647
- const tablesToReplicate = tables.filter((table) => table.syncAny);
648
- if (tablesToReplicate.length > 0) {
649
- this.replicationLag.trackUncommittedChange(
650
- // Standard MongoDB uses clusterTime, unchanged. DocumentDB has no
651
- // clusterTime, so fall back to wallTime there for the lag metric.
652
- changeDocument.clusterTime != null
653
- ? timestampToDate(changeDocument.clusterTime)
654
- : (changeDocument.wallTime ?? null));
655
- const transactionKeyValue = transactionKey(changeDocument);
656
- if (transactionKeyValue == null || lastTxnKey != transactionKeyValue) {
657
- // Very crude metric for counting transactions replicated.
658
- // We ignore operations other than basic CRUD, and ignore changes to _powersync_checkpoints.
659
- // Individual writes may not have a txnNumber, in which case we count them as separate transactions.
660
- lastTxnKey = transactionKeyValue;
661
- transactionsReplicatedMetric.add(1);
662
- }
663
- for (const table of tablesToReplicate) {
664
- await this.writeChange(batch, table, changeDocument);
665
- }
666
- }
667
- }
668
- else if (changeDocument.operationType == 'drop') {
669
- const rel = getMongoRelation(changeDocument.ns, this.connections.connectionTag);
670
- const tables = await this.getRelations(batch, rel, {
671
- // We're "dropping" this collection, so never snapshot it.
672
- snapshot: false
673
- });
674
- const tablesToDrop = tables.filter((table) => table.syncAny);
675
- if (tablesToDrop.length > 0) {
676
- await batch.drop(tablesToDrop);
677
- }
678
- this.relationCache.delete(rel);
679
- }
680
- else if (changeDocument.operationType == 'rename') {
681
- const relFrom = getMongoRelation(changeDocument.ns, this.connections.connectionTag);
682
- const relTo = getMongoRelation(changeDocument.to, this.connections.connectionTag);
683
- const tablesFrom = await this.getRelations(batch, relFrom, {
684
- // We're "dropping" this collection, so never snapshot it.
685
- snapshot: false
686
- });
687
- const tablesToDrop = tablesFrom.filter((table) => table.syncAny);
688
- if (tablesToDrop.length > 0) {
689
- await batch.drop(tablesToDrop);
690
- }
691
- this.relationCache.delete(relFrom);
692
- // Here we do need to snapshot the new table
693
- const collection = await this.getCollectionInfo(relTo.schema, relTo.name);
694
- await this.handleRelation(batch, relTo, {
695
- // This is a new (renamed) collection, so always snapshot it.
696
- snapshot: true,
697
- collectionInfo: collection
698
- });
699
- }
700
714
  }
701
715
  });
702
716
  throw new ReplicationAbortedError(`Replication stream aborted`, this.abortSignal.reason);
@@ -1 +1 @@
1
- {"version":3,"file":"ChangeStream.js","sourceRoot":"","sources":["../../src/replication/ChangeStream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChangeStream.js","sourceRoot":"","sources":["../../src/replication/ChangeStream.ts"],"names":[],"mappings":"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"}
@@ -54,15 +54,23 @@ export class ChangeStreamReplicationJob extends replication.AbstractReplicationJ
54
54
  if (this.isStopped) {
55
55
  return;
56
56
  }
57
- const stream = new ChangeStream({
58
- abort_signal: this.abortController.signal,
59
- storage: this.options.storage,
60
- metrics: this.options.metrics,
61
- connections: connectionManager,
62
- keepaliveIntervalMs: connectionManager.options.heartbeat_interval_seconds * 1_000,
63
- logger: this.logger,
64
- createReplicationQueryProvider: this.createReplicationQueryProvider
65
- });
57
+ let stream;
58
+ try {
59
+ stream = new ChangeStream({
60
+ abort_signal: this.abortController.signal,
61
+ storage: this.options.storage,
62
+ metrics: this.options.metrics,
63
+ connections: connectionManager,
64
+ keepaliveIntervalMs: connectionManager.options.heartbeat_interval_seconds * 1_000,
65
+ logger: this.logger,
66
+ createReplicationQueryProvider: this.createReplicationQueryProvider
67
+ });
68
+ }
69
+ catch (error) {
70
+ // Construction can fail before ChangeStream.replicate() reports errors.
71
+ await this.storage.reportError(error);
72
+ throw error;
73
+ }
66
74
  this.lastStream = stream;
67
75
  await stream.replicate();
68
76
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ChangeStreamReplicationJob.js","sourceRoot":"","sources":["../../src/replication/ChangeStreamReplicationJob.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChangeStreamReplicationJob.js","sourceRoot":"","sources":["../../src/replication/ChangeStreamReplicationJob.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { mongo } from '@powersync/lib-service-mongodb';
2
2
  import { SourceTable } from '@powersync/service-core';
3
3
  import { HydratedSyncConfig } from '@powersync/service-sync-rules';
4
4
  import { MongoManager } from './MongoManager.js';
5
- import { MongoReplicationStreamContext, MongoReplicationStreamItem } from './MongoReplicationStream.js';
5
+ import type { MongoReplicationStreamBatch, MongoReplicationStreamContext } from './MongoReplicationStreamTypes.js';
6
6
  /**
7
7
  * Sync config and source namespace information used to construct a provider for a replication attempt.
8
8
  */
@@ -35,17 +35,15 @@ export interface MongoReplicationQueryProvider {
35
35
  isDocumentDb: boolean;
36
36
  }): Promise<void>;
37
37
  /**
38
- * Call context.open() with any additional stages/pre-image options, then optionally wrap its iterator.
39
- * Unlike pipeline stages alone, the wrapper can exclude marked events while still forwarding progress.
40
- * Yield changes and safe progress, including when all data events are excluded.
41
- * Count excluded complete events in the next progress item's filteredCount, resetting it after each
42
- * progress item. Preserve the reader's safe resume token rather than advancing past buffered changes.
43
- * An exit from a filtered set may be represented as a synthetic delete retaining its original key and token.
44
- * Checkpoint/DDL events must remain ordered and intact. Progress alone must never stand in for a checkpoint.
45
- * Each call opens a separate iterator, also used for snapshot barriers and resume validation. Keep
46
- * per-iterator state separate and close the underlying iterator when the wrapper exits.
38
+ * Call context.open() with any additional stages/pre-image options. For filtering, pass its result
39
+ * to filterMongoReplicationStream({ batches, filter }) with a MongoReplicationFilter callback.
40
+ * The helper preserves checkpoints, DDL, batch boundaries, buffered-change flags and safe progress,
41
+ * counts excluded events, and closes the source iterator on failure or early exit.
42
+ * The default provider returns the opener's batches directly.
43
+ * Each invocation is independent and also serves snapshot barriers and resume validation; keep
44
+ * filter state local to that invocation. Snapshot selection must agree with streaming decisions.
47
45
  */
48
- openChangeStream(context: MongoReplicationStreamContext): AsyncIterableIterator<MongoReplicationStreamItem>;
46
+ openChangeStream(context: MongoReplicationStreamContext): AsyncIterableIterator<MongoReplicationStreamBatch>;
49
47
  /**
50
48
  * Returns an additional MongoDB find predicate for a physical source table.
51
49
  * Return null to snapshot without an additional filter. Snapshot selection must agree with the
@@ -1 +1 @@
1
- {"version":3,"file":"MongoReplicationQueryProvider.js","sourceRoot":"","sources":["../../src/replication/MongoReplicationQueryProvider.ts"],"names":[],"mappings":"AAkEA;;GAEG;AACH,MAAM,CAAC,MAAM,wCAAwC,GAAkC;IACrF,iBAAiB,EAAE,GAAG,EAAE,CAAC,IAAI;IAC7B,gBAAgB,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;CACzC,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,8BAA8B,CAAC,OAiB9C;IACC,MAAM,QAAQ,GAAqB;QACjC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE;QACxC,EAAE,MAAM,EAAE,OAAO,CAAC,cAAc,EAAE;QAClC,GAAG,OAAO,CAAC,cAAc;KAC1B,CAAC;IAEF,IAAI,OAAO,CAAC,sBAAsB,EAAE,CAAC;QACnC,QAAQ,CAAC,IAAI,CAAC,EAAE,4BAA4B,EAAE,EAAE,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"MongoReplicationQueryProvider.js","sourceRoot":"","sources":["../../src/replication/MongoReplicationQueryProvider.ts"],"names":[],"mappings":"AAgEA;;GAEG;AACH,MAAM,CAAC,MAAM,wCAAwC,GAAkC;IACrF,iBAAiB,EAAE,GAAG,EAAE,CAAC,IAAI;IAC7B,gBAAgB,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;CACzC,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,8BAA8B,CAAC,OAiB9C;IACC,MAAM,QAAQ,GAAqB;QACjC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE;QACxC,EAAE,MAAM,EAAE,OAAO,CAAC,cAAc,EAAE;QAClC,GAAG,OAAO,CAAC,cAAc;KAC1B,CAAC;IAEF,IAAI,OAAO,CAAC,sBAAsB,EAAE,CAAC;QACnC,QAAQ,CAAC,IAAI,CAAC,EAAE,4BAA4B,EAAE,EAAE,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}