@syncular/client 0.0.1-83 → 0.0.1-89
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.
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Event-driven sync engine that manages push/pull cycles, connection state,
|
|
5
5
|
* and provides a clean API for framework bindings to consume.
|
|
6
6
|
*/
|
|
7
|
-
import type
|
|
7
|
+
import { type SyncSubscriptionRequest } from '@syncular/core';
|
|
8
8
|
import { type Kysely } from 'kysely';
|
|
9
9
|
import type { SyncClientDb } from '../schema';
|
|
10
10
|
import type { ConflictInfo, OutboxStats, PresenceEntry, SyncEngineConfig, SyncEngineState, SyncEventListener, SyncEventType, SyncResult } from './types';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SyncEngine.d.ts","sourceRoot":"","sources":["../../src/engine/SyncEngine.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"SyncEngine.d.ts","sourceRoot":"","sources":["../../src/engine/SyncEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Event-driven sync engine that manages push/pull cycles, connection state,
|
|
5
5
|
* and provides a clean API for framework bindings to consume.
|
|
6
6
|
*/
|
|
7
|
-
import { isRecord } from '@syncular/core';
|
|
7
|
+
import { captureSyncException, countSyncMetric, distributionSyncMetric, isRecord, startSyncSpan, } from '@syncular/core';
|
|
8
8
|
import { sql } from 'kysely';
|
|
9
9
|
import { syncPushOnce } from '../push-engine.js';
|
|
10
10
|
import { syncOnce } from '../sync-loop.js';
|
|
@@ -30,6 +30,9 @@ function createSyncError(code, message, cause) {
|
|
|
30
30
|
timestamp: Date.now(),
|
|
31
31
|
};
|
|
32
32
|
}
|
|
33
|
+
function resolveSyncTriggerLabel(trigger) {
|
|
34
|
+
return trigger ?? 'auto';
|
|
35
|
+
}
|
|
33
36
|
export class SyncEngine {
|
|
34
37
|
config;
|
|
35
38
|
state;
|
|
@@ -412,21 +415,31 @@ export class SyncEngine {
|
|
|
412
415
|
}
|
|
413
416
|
async performSyncOnce(trigger) {
|
|
414
417
|
const timestamp = Date.now();
|
|
418
|
+
const startedAtMs = timestamp;
|
|
419
|
+
const triggerLabel = resolveSyncTriggerLabel(trigger);
|
|
415
420
|
this.updateState({ isSyncing: true });
|
|
416
421
|
this.emit('sync:start', { timestamp });
|
|
422
|
+
countSyncMetric('sync.client.sync.attempts', 1, {
|
|
423
|
+
attributes: { trigger: triggerLabel },
|
|
424
|
+
});
|
|
417
425
|
try {
|
|
418
426
|
const pullApplyTimestamp = Date.now();
|
|
419
|
-
const result = await
|
|
427
|
+
const result = await startSyncSpan({
|
|
428
|
+
name: 'sync.client.sync',
|
|
429
|
+
op: 'sync.client.sync',
|
|
430
|
+
attributes: { trigger: triggerLabel },
|
|
431
|
+
}, () => syncOnce(this.config.db, this.config.transport, this.config.shapes, {
|
|
420
432
|
clientId: this.config.clientId,
|
|
421
433
|
actorId: this.config.actorId ?? undefined,
|
|
422
434
|
plugins: this.config.plugins,
|
|
423
|
-
subscriptions: this.config
|
|
435
|
+
subscriptions: this.config
|
|
436
|
+
.subscriptions,
|
|
424
437
|
limitCommits: this.config.limitCommits,
|
|
425
438
|
limitSnapshotRows: this.config.limitSnapshotRows,
|
|
426
439
|
maxSnapshotPages: this.config.maxSnapshotPages,
|
|
427
440
|
stateId: this.config.stateId,
|
|
428
441
|
trigger,
|
|
429
|
-
});
|
|
442
|
+
}));
|
|
430
443
|
const syncResult = {
|
|
431
444
|
success: true,
|
|
432
445
|
pushedCommits: result.pushedCommits,
|
|
@@ -462,6 +475,26 @@ export class SyncEngine {
|
|
|
462
475
|
this.refreshOutboxStats().catch((error) => {
|
|
463
476
|
console.warn('[SyncEngine] Failed to refresh outbox stats after sync:', error);
|
|
464
477
|
});
|
|
478
|
+
const durationMs = Math.max(0, Date.now() - startedAtMs);
|
|
479
|
+
countSyncMetric('sync.client.sync.results', 1, {
|
|
480
|
+
attributes: {
|
|
481
|
+
trigger: triggerLabel,
|
|
482
|
+
status: 'success',
|
|
483
|
+
},
|
|
484
|
+
});
|
|
485
|
+
distributionSyncMetric('sync.client.sync.duration_ms', durationMs, {
|
|
486
|
+
unit: 'millisecond',
|
|
487
|
+
attributes: {
|
|
488
|
+
trigger: triggerLabel,
|
|
489
|
+
status: 'success',
|
|
490
|
+
},
|
|
491
|
+
});
|
|
492
|
+
distributionSyncMetric('sync.client.sync.pushed_commits', result.pushedCommits, {
|
|
493
|
+
attributes: { trigger: triggerLabel },
|
|
494
|
+
});
|
|
495
|
+
distributionSyncMetric('sync.client.sync.pull_rounds', result.pullRounds, {
|
|
496
|
+
attributes: { trigger: triggerLabel },
|
|
497
|
+
});
|
|
465
498
|
return syncResult;
|
|
466
499
|
}
|
|
467
500
|
catch (err) {
|
|
@@ -473,6 +506,24 @@ export class SyncEngine {
|
|
|
473
506
|
isRetrying: false,
|
|
474
507
|
});
|
|
475
508
|
this.handleError(error);
|
|
509
|
+
const durationMs = Math.max(0, Date.now() - startedAtMs);
|
|
510
|
+
countSyncMetric('sync.client.sync.results', 1, {
|
|
511
|
+
attributes: {
|
|
512
|
+
trigger: triggerLabel,
|
|
513
|
+
status: 'error',
|
|
514
|
+
},
|
|
515
|
+
});
|
|
516
|
+
distributionSyncMetric('sync.client.sync.duration_ms', durationMs, {
|
|
517
|
+
unit: 'millisecond',
|
|
518
|
+
attributes: {
|
|
519
|
+
trigger: triggerLabel,
|
|
520
|
+
status: 'error',
|
|
521
|
+
},
|
|
522
|
+
});
|
|
523
|
+
captureSyncException(err, {
|
|
524
|
+
event: 'sync.client.sync',
|
|
525
|
+
trigger: triggerLabel,
|
|
526
|
+
});
|
|
476
527
|
// Schedule retry if under max retries
|
|
477
528
|
const maxRetries = this.config.maxRetries ?? DEFAULT_MAX_RETRIES;
|
|
478
529
|
if (this.state.retryCount < maxRetries) {
|
|
@@ -566,11 +617,17 @@ export class SyncEngine {
|
|
|
566
617
|
async handleWsDelivery(changes, cursor) {
|
|
567
618
|
// If a sync is already in-flight, let it handle everything
|
|
568
619
|
if (this.syncPromise) {
|
|
620
|
+
countSyncMetric('sync.client.ws.delivery.events', 1, {
|
|
621
|
+
attributes: { path: 'inflight_sync' },
|
|
622
|
+
});
|
|
569
623
|
this.triggerSyncInBackground({ trigger: 'ws' }, 'ws delivery with in-flight sync');
|
|
570
624
|
return;
|
|
571
625
|
}
|
|
572
626
|
// If there are pending outbox commits, need to push via HTTP
|
|
573
627
|
if (this.state.pendingCount > 0) {
|
|
628
|
+
countSyncMetric('sync.client.ws.delivery.events', 1, {
|
|
629
|
+
attributes: { path: 'pending_outbox' },
|
|
630
|
+
});
|
|
574
631
|
this.triggerSyncInBackground({ trigger: 'ws' }, 'ws delivery with pending outbox');
|
|
575
632
|
return;
|
|
576
633
|
}
|
|
@@ -578,16 +635,30 @@ export class SyncEngine {
|
|
|
578
635
|
// (e.g. decryption). Fall back to HTTP sync and do not apply inline payload.
|
|
579
636
|
const hasAfterPullPlugins = this.config.plugins?.some((p) => typeof p.afterPull === 'function');
|
|
580
637
|
if (hasAfterPullPlugins) {
|
|
638
|
+
countSyncMetric('sync.client.ws.delivery.events', 1, {
|
|
639
|
+
attributes: { path: 'after_pull_plugins' },
|
|
640
|
+
});
|
|
581
641
|
this.triggerSyncInBackground({ trigger: 'ws' }, 'ws delivery with afterPull plugins');
|
|
582
642
|
return;
|
|
583
643
|
}
|
|
584
644
|
// Apply changes + update cursor
|
|
645
|
+
const inlineApplyStartedAtMs = Date.now();
|
|
585
646
|
const applied = await this.applyWsDeliveredChanges(changes, cursor);
|
|
647
|
+
const inlineApplyDurationMs = Math.max(0, Date.now() - inlineApplyStartedAtMs);
|
|
648
|
+
distributionSyncMetric('sync.client.ws.inline_apply.duration_ms', inlineApplyDurationMs, {
|
|
649
|
+
unit: 'millisecond',
|
|
650
|
+
});
|
|
586
651
|
if (!applied) {
|
|
652
|
+
countSyncMetric('sync.client.ws.delivery.events', 1, {
|
|
653
|
+
attributes: { path: 'inline_fallback' },
|
|
654
|
+
});
|
|
587
655
|
this.triggerSyncInBackground({ trigger: 'ws' }, 'ws inline apply fallback');
|
|
588
656
|
return;
|
|
589
657
|
}
|
|
590
658
|
// All clear — skip HTTP pull entirely
|
|
659
|
+
countSyncMetric('sync.client.ws.delivery.events', 1, {
|
|
660
|
+
attributes: { path: 'inline_applied' },
|
|
661
|
+
});
|
|
591
662
|
this.updateState({
|
|
592
663
|
lastSyncAt: Date.now(),
|
|
593
664
|
error: null,
|
|
@@ -745,6 +816,9 @@ export class SyncEngine {
|
|
|
745
816
|
}
|
|
746
817
|
this.realtimeDisconnect = transport.connect({ clientId: this.config.clientId }, (event) => {
|
|
747
818
|
if (event.event === 'sync') {
|
|
819
|
+
countSyncMetric('sync.client.ws.events', 1, {
|
|
820
|
+
attributes: { type: 'sync' },
|
|
821
|
+
});
|
|
748
822
|
const hasInlineChanges = Array.isArray(event.data.changes) && event.data.changes.length > 0;
|
|
749
823
|
const cursor = event.data.cursor;
|
|
750
824
|
if (hasInlineChanges && typeof cursor === 'number') {
|
|
@@ -753,6 +827,9 @@ export class SyncEngine {
|
|
|
753
827
|
}
|
|
754
828
|
else {
|
|
755
829
|
// Cursor-only wake-up or no cursor — must HTTP sync
|
|
830
|
+
countSyncMetric('sync.client.ws.delivery.events', 1, {
|
|
831
|
+
attributes: { path: 'cursor_wakeup' },
|
|
832
|
+
});
|
|
756
833
|
this.triggerSyncInBackground({ trigger: 'ws' }, 'ws cursor wakeup');
|
|
757
834
|
}
|
|
758
835
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SyncEngine.js","sourceRoot":"","sources":["../../src/engine/SyncEngine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SyncEngine.js","sourceRoot":"","sources":["../../src/engine/SyncEngine.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/engine/SyncEngine.ts
CHANGED
|
@@ -5,12 +5,16 @@
|
|
|
5
5
|
* and provides a clean API for framework bindings to consume.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
import {
|
|
9
|
+
captureSyncException,
|
|
10
|
+
countSyncMetric,
|
|
11
|
+
distributionSyncMetric,
|
|
12
|
+
isRecord,
|
|
13
|
+
type SyncChange,
|
|
14
|
+
type SyncPullResponse,
|
|
15
|
+
type SyncSubscriptionRequest,
|
|
16
|
+
startSyncSpan,
|
|
12
17
|
} from '@syncular/core';
|
|
13
|
-
import { isRecord } from '@syncular/core';
|
|
14
18
|
import { type Kysely, sql } from 'kysely';
|
|
15
19
|
import { syncPushOnce } from '../push-engine';
|
|
16
20
|
import type {
|
|
@@ -72,6 +76,12 @@ function createSyncError(
|
|
|
72
76
|
};
|
|
73
77
|
}
|
|
74
78
|
|
|
79
|
+
function resolveSyncTriggerLabel(
|
|
80
|
+
trigger?: 'ws' | 'local' | 'poll'
|
|
81
|
+
): 'ws' | 'local' | 'poll' | 'auto' {
|
|
82
|
+
return trigger ?? 'auto';
|
|
83
|
+
}
|
|
84
|
+
|
|
75
85
|
/**
|
|
76
86
|
* Sync engine that orchestrates push/pull cycles with proper lifecycle management.
|
|
77
87
|
*
|
|
@@ -546,26 +556,35 @@ export class SyncEngine<DB extends SyncClientDb = SyncClientDb> {
|
|
|
546
556
|
trigger?: 'ws' | 'local' | 'poll'
|
|
547
557
|
): Promise<SyncResult> {
|
|
548
558
|
const timestamp = Date.now();
|
|
559
|
+
const startedAtMs = timestamp;
|
|
560
|
+
const triggerLabel = resolveSyncTriggerLabel(trigger);
|
|
549
561
|
this.updateState({ isSyncing: true });
|
|
550
562
|
this.emit('sync:start', { timestamp });
|
|
563
|
+
countSyncMetric('sync.client.sync.attempts', 1, {
|
|
564
|
+
attributes: { trigger: triggerLabel },
|
|
565
|
+
});
|
|
551
566
|
|
|
552
567
|
try {
|
|
553
568
|
const pullApplyTimestamp = Date.now();
|
|
554
|
-
const result = await
|
|
555
|
-
this.config.db,
|
|
556
|
-
this.config.transport,
|
|
557
|
-
this.config.shapes,
|
|
569
|
+
const result = await startSyncSpan(
|
|
558
570
|
{
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
571
|
+
name: 'sync.client.sync',
|
|
572
|
+
op: 'sync.client.sync',
|
|
573
|
+
attributes: { trigger: triggerLabel },
|
|
574
|
+
},
|
|
575
|
+
() =>
|
|
576
|
+
syncOnce(this.config.db, this.config.transport, this.config.shapes, {
|
|
577
|
+
clientId: this.config.clientId!,
|
|
578
|
+
actorId: this.config.actorId ?? undefined,
|
|
579
|
+
plugins: this.config.plugins,
|
|
580
|
+
subscriptions: this.config
|
|
581
|
+
.subscriptions as SyncSubscriptionRequest[],
|
|
582
|
+
limitCommits: this.config.limitCommits,
|
|
583
|
+
limitSnapshotRows: this.config.limitSnapshotRows,
|
|
584
|
+
maxSnapshotPages: this.config.maxSnapshotPages,
|
|
585
|
+
stateId: this.config.stateId,
|
|
586
|
+
trigger,
|
|
587
|
+
})
|
|
569
588
|
);
|
|
570
589
|
|
|
571
590
|
const syncResult: SyncResult = {
|
|
@@ -615,6 +634,35 @@ export class SyncEngine<DB extends SyncClientDb = SyncClientDb> {
|
|
|
615
634
|
);
|
|
616
635
|
});
|
|
617
636
|
|
|
637
|
+
const durationMs = Math.max(0, Date.now() - startedAtMs);
|
|
638
|
+
countSyncMetric('sync.client.sync.results', 1, {
|
|
639
|
+
attributes: {
|
|
640
|
+
trigger: triggerLabel,
|
|
641
|
+
status: 'success',
|
|
642
|
+
},
|
|
643
|
+
});
|
|
644
|
+
distributionSyncMetric('sync.client.sync.duration_ms', durationMs, {
|
|
645
|
+
unit: 'millisecond',
|
|
646
|
+
attributes: {
|
|
647
|
+
trigger: triggerLabel,
|
|
648
|
+
status: 'success',
|
|
649
|
+
},
|
|
650
|
+
});
|
|
651
|
+
distributionSyncMetric(
|
|
652
|
+
'sync.client.sync.pushed_commits',
|
|
653
|
+
result.pushedCommits,
|
|
654
|
+
{
|
|
655
|
+
attributes: { trigger: triggerLabel },
|
|
656
|
+
}
|
|
657
|
+
);
|
|
658
|
+
distributionSyncMetric(
|
|
659
|
+
'sync.client.sync.pull_rounds',
|
|
660
|
+
result.pullRounds,
|
|
661
|
+
{
|
|
662
|
+
attributes: { trigger: triggerLabel },
|
|
663
|
+
}
|
|
664
|
+
);
|
|
665
|
+
|
|
618
666
|
return syncResult;
|
|
619
667
|
} catch (err) {
|
|
620
668
|
const error = createSyncError(
|
|
@@ -632,6 +680,25 @@ export class SyncEngine<DB extends SyncClientDb = SyncClientDb> {
|
|
|
632
680
|
|
|
633
681
|
this.handleError(error);
|
|
634
682
|
|
|
683
|
+
const durationMs = Math.max(0, Date.now() - startedAtMs);
|
|
684
|
+
countSyncMetric('sync.client.sync.results', 1, {
|
|
685
|
+
attributes: {
|
|
686
|
+
trigger: triggerLabel,
|
|
687
|
+
status: 'error',
|
|
688
|
+
},
|
|
689
|
+
});
|
|
690
|
+
distributionSyncMetric('sync.client.sync.duration_ms', durationMs, {
|
|
691
|
+
unit: 'millisecond',
|
|
692
|
+
attributes: {
|
|
693
|
+
trigger: triggerLabel,
|
|
694
|
+
status: 'error',
|
|
695
|
+
},
|
|
696
|
+
});
|
|
697
|
+
captureSyncException(err, {
|
|
698
|
+
event: 'sync.client.sync',
|
|
699
|
+
trigger: triggerLabel,
|
|
700
|
+
});
|
|
701
|
+
|
|
635
702
|
// Schedule retry if under max retries
|
|
636
703
|
const maxRetries = this.config.maxRetries ?? DEFAULT_MAX_RETRIES;
|
|
637
704
|
if (this.state.retryCount < maxRetries) {
|
|
@@ -739,6 +806,9 @@ export class SyncEngine<DB extends SyncClientDb = SyncClientDb> {
|
|
|
739
806
|
): Promise<void> {
|
|
740
807
|
// If a sync is already in-flight, let it handle everything
|
|
741
808
|
if (this.syncPromise) {
|
|
809
|
+
countSyncMetric('sync.client.ws.delivery.events', 1, {
|
|
810
|
+
attributes: { path: 'inflight_sync' },
|
|
811
|
+
});
|
|
742
812
|
this.triggerSyncInBackground(
|
|
743
813
|
{ trigger: 'ws' },
|
|
744
814
|
'ws delivery with in-flight sync'
|
|
@@ -748,6 +818,9 @@ export class SyncEngine<DB extends SyncClientDb = SyncClientDb> {
|
|
|
748
818
|
|
|
749
819
|
// If there are pending outbox commits, need to push via HTTP
|
|
750
820
|
if (this.state.pendingCount > 0) {
|
|
821
|
+
countSyncMetric('sync.client.ws.delivery.events', 1, {
|
|
822
|
+
attributes: { path: 'pending_outbox' },
|
|
823
|
+
});
|
|
751
824
|
this.triggerSyncInBackground(
|
|
752
825
|
{ trigger: 'ws' },
|
|
753
826
|
'ws delivery with pending outbox'
|
|
@@ -761,6 +834,9 @@ export class SyncEngine<DB extends SyncClientDb = SyncClientDb> {
|
|
|
761
834
|
(p) => typeof p.afterPull === 'function'
|
|
762
835
|
);
|
|
763
836
|
if (hasAfterPullPlugins) {
|
|
837
|
+
countSyncMetric('sync.client.ws.delivery.events', 1, {
|
|
838
|
+
attributes: { path: 'after_pull_plugins' },
|
|
839
|
+
});
|
|
764
840
|
this.triggerSyncInBackground(
|
|
765
841
|
{ trigger: 'ws' },
|
|
766
842
|
'ws delivery with afterPull plugins'
|
|
@@ -769,8 +845,24 @@ export class SyncEngine<DB extends SyncClientDb = SyncClientDb> {
|
|
|
769
845
|
}
|
|
770
846
|
|
|
771
847
|
// Apply changes + update cursor
|
|
848
|
+
const inlineApplyStartedAtMs = Date.now();
|
|
772
849
|
const applied = await this.applyWsDeliveredChanges(changes, cursor);
|
|
850
|
+
const inlineApplyDurationMs = Math.max(
|
|
851
|
+
0,
|
|
852
|
+
Date.now() - inlineApplyStartedAtMs
|
|
853
|
+
);
|
|
854
|
+
distributionSyncMetric(
|
|
855
|
+
'sync.client.ws.inline_apply.duration_ms',
|
|
856
|
+
inlineApplyDurationMs,
|
|
857
|
+
{
|
|
858
|
+
unit: 'millisecond',
|
|
859
|
+
}
|
|
860
|
+
);
|
|
861
|
+
|
|
773
862
|
if (!applied) {
|
|
863
|
+
countSyncMetric('sync.client.ws.delivery.events', 1, {
|
|
864
|
+
attributes: { path: 'inline_fallback' },
|
|
865
|
+
});
|
|
774
866
|
this.triggerSyncInBackground(
|
|
775
867
|
{ trigger: 'ws' },
|
|
776
868
|
'ws inline apply fallback'
|
|
@@ -779,6 +871,9 @@ export class SyncEngine<DB extends SyncClientDb = SyncClientDb> {
|
|
|
779
871
|
}
|
|
780
872
|
|
|
781
873
|
// All clear — skip HTTP pull entirely
|
|
874
|
+
countSyncMetric('sync.client.ws.delivery.events', 1, {
|
|
875
|
+
attributes: { path: 'inline_applied' },
|
|
876
|
+
});
|
|
782
877
|
this.updateState({
|
|
783
878
|
lastSyncAt: Date.now(),
|
|
784
879
|
error: null,
|
|
@@ -988,6 +1083,9 @@ export class SyncEngine<DB extends SyncClientDb = SyncClientDb> {
|
|
|
988
1083
|
{ clientId: this.config.clientId! },
|
|
989
1084
|
(event) => {
|
|
990
1085
|
if (event.event === 'sync') {
|
|
1086
|
+
countSyncMetric('sync.client.ws.events', 1, {
|
|
1087
|
+
attributes: { type: 'sync' },
|
|
1088
|
+
});
|
|
991
1089
|
const hasInlineChanges =
|
|
992
1090
|
Array.isArray(event.data.changes) && event.data.changes.length > 0;
|
|
993
1091
|
const cursor = event.data.cursor;
|
|
@@ -997,6 +1095,9 @@ export class SyncEngine<DB extends SyncClientDb = SyncClientDb> {
|
|
|
997
1095
|
this.handleWsDelivery(event.data.changes as SyncChange[], cursor);
|
|
998
1096
|
} else {
|
|
999
1097
|
// Cursor-only wake-up or no cursor — must HTTP sync
|
|
1098
|
+
countSyncMetric('sync.client.ws.delivery.events', 1, {
|
|
1099
|
+
attributes: { path: 'cursor_wakeup' },
|
|
1100
|
+
});
|
|
1000
1101
|
this.triggerSyncInBackground({ trigger: 'ws' }, 'ws cursor wakeup');
|
|
1001
1102
|
}
|
|
1002
1103
|
}
|