@livestore/common 0.3.0-dev.26 → 0.3.0-dev.27
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.
- package/dist/.tsbuildinfo +1 -1
- package/dist/adapter-types.d.ts +13 -12
- package/dist/adapter-types.d.ts.map +1 -1
- package/dist/adapter-types.js +5 -6
- package/dist/adapter-types.js.map +1 -1
- package/dist/devtools/devtools-messages-client-session.d.ts +21 -21
- package/dist/devtools/devtools-messages-common.d.ts +13 -6
- package/dist/devtools/devtools-messages-common.d.ts.map +1 -1
- package/dist/devtools/devtools-messages-common.js +6 -0
- package/dist/devtools/devtools-messages-common.js.map +1 -1
- package/dist/devtools/devtools-messages-leader.d.ts +25 -25
- package/dist/devtools/devtools-messages-leader.d.ts.map +1 -1
- package/dist/devtools/devtools-messages-leader.js +1 -2
- package/dist/devtools/devtools-messages-leader.js.map +1 -1
- package/dist/leader-thread/LeaderSyncProcessor.d.ts +15 -6
- package/dist/leader-thread/LeaderSyncProcessor.d.ts.map +1 -1
- package/dist/leader-thread/LeaderSyncProcessor.js +211 -189
- package/dist/leader-thread/LeaderSyncProcessor.js.map +1 -1
- package/dist/leader-thread/apply-mutation.d.ts +14 -9
- package/dist/leader-thread/apply-mutation.d.ts.map +1 -1
- package/dist/leader-thread/apply-mutation.js +43 -36
- package/dist/leader-thread/apply-mutation.js.map +1 -1
- package/dist/leader-thread/leader-worker-devtools.d.ts +1 -1
- package/dist/leader-thread/leader-worker-devtools.d.ts.map +1 -1
- package/dist/leader-thread/leader-worker-devtools.js +4 -5
- package/dist/leader-thread/leader-worker-devtools.js.map +1 -1
- package/dist/leader-thread/make-leader-thread-layer.d.ts.map +1 -1
- package/dist/leader-thread/make-leader-thread-layer.js +21 -33
- package/dist/leader-thread/make-leader-thread-layer.js.map +1 -1
- package/dist/leader-thread/mod.d.ts +1 -1
- package/dist/leader-thread/mod.d.ts.map +1 -1
- package/dist/leader-thread/mod.js +1 -1
- package/dist/leader-thread/mod.js.map +1 -1
- package/dist/leader-thread/mutationlog.d.ts +19 -3
- package/dist/leader-thread/mutationlog.d.ts.map +1 -1
- package/dist/leader-thread/mutationlog.js +105 -12
- package/dist/leader-thread/mutationlog.js.map +1 -1
- package/dist/leader-thread/pull-queue-set.d.ts +1 -1
- package/dist/leader-thread/pull-queue-set.d.ts.map +1 -1
- package/dist/leader-thread/pull-queue-set.js +6 -16
- package/dist/leader-thread/pull-queue-set.js.map +1 -1
- package/dist/leader-thread/recreate-db.d.ts.map +1 -1
- package/dist/leader-thread/recreate-db.js +4 -3
- package/dist/leader-thread/recreate-db.js.map +1 -1
- package/dist/leader-thread/types.d.ts +34 -19
- package/dist/leader-thread/types.d.ts.map +1 -1
- package/dist/leader-thread/types.js.map +1 -1
- package/dist/rehydrate-from-mutationlog.d.ts +5 -4
- package/dist/rehydrate-from-mutationlog.d.ts.map +1 -1
- package/dist/rehydrate-from-mutationlog.js +7 -9
- package/dist/rehydrate-from-mutationlog.js.map +1 -1
- package/dist/schema/EventId.d.ts +9 -0
- package/dist/schema/EventId.d.ts.map +1 -1
- package/dist/schema/EventId.js +17 -2
- package/dist/schema/EventId.js.map +1 -1
- package/dist/schema/MutationEvent.d.ts +78 -25
- package/dist/schema/MutationEvent.d.ts.map +1 -1
- package/dist/schema/MutationEvent.js +25 -12
- package/dist/schema/MutationEvent.js.map +1 -1
- package/dist/schema/schema.js +1 -1
- package/dist/schema/schema.js.map +1 -1
- package/dist/schema/system-tables.d.ts +67 -0
- package/dist/schema/system-tables.d.ts.map +1 -1
- package/dist/schema/system-tables.js +12 -1
- package/dist/schema/system-tables.js.map +1 -1
- package/dist/sync/ClientSessionSyncProcessor.d.ts +9 -1
- package/dist/sync/ClientSessionSyncProcessor.d.ts.map +1 -1
- package/dist/sync/ClientSessionSyncProcessor.js +25 -19
- package/dist/sync/ClientSessionSyncProcessor.js.map +1 -1
- package/dist/sync/sync.d.ts +6 -5
- package/dist/sync/sync.d.ts.map +1 -1
- package/dist/sync/sync.js.map +1 -1
- package/dist/sync/syncstate.d.ts +47 -71
- package/dist/sync/syncstate.d.ts.map +1 -1
- package/dist/sync/syncstate.js +118 -127
- package/dist/sync/syncstate.js.map +1 -1
- package/dist/sync/syncstate.test.js +204 -275
- package/dist/sync/syncstate.test.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +2 -2
- package/src/adapter-types.ts +11 -13
- package/src/devtools/devtools-messages-common.ts +9 -0
- package/src/devtools/devtools-messages-leader.ts +1 -2
- package/src/leader-thread/LeaderSyncProcessor.ts +381 -346
- package/src/leader-thread/apply-mutation.ts +81 -71
- package/src/leader-thread/leader-worker-devtools.ts +5 -7
- package/src/leader-thread/make-leader-thread-layer.ts +26 -41
- package/src/leader-thread/mod.ts +1 -1
- package/src/leader-thread/mutationlog.ts +166 -13
- package/src/leader-thread/recreate-db.ts +4 -3
- package/src/leader-thread/types.ts +33 -23
- package/src/rehydrate-from-mutationlog.ts +12 -12
- package/src/schema/EventId.ts +20 -2
- package/src/schema/MutationEvent.ts +32 -16
- package/src/schema/schema.ts +1 -1
- package/src/schema/system-tables.ts +20 -1
- package/src/sync/ClientSessionSyncProcessor.ts +35 -23
- package/src/sync/sync.ts +6 -9
- package/src/sync/syncstate.test.ts +230 -306
- package/src/sync/syncstate.ts +176 -171
- package/src/version.ts +1 -1
- package/src/leader-thread/pull-queue-set.ts +0 -67
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"devtools-messages-leader.js","sourceRoot":"","sources":["../../src/devtools/devtools-messages-leader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAE9D,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"devtools-messages-leader.js","sourceRoot":"","sources":["../../src/devtools/devtools-messages-leader.ts"],"names":[],"mappings":"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"}
|
@@ -5,6 +5,7 @@ import { UnexpectedError } from '../adapter-types.js';
|
|
5
5
|
import type { LiveStoreSchema } from '../schema/mod.js';
|
6
6
|
import type { InitialBlockingSyncContext, LeaderSyncProcessor } from './types.js';
|
7
7
|
export declare const BACKEND_PUSH_BATCH_SIZE = 50;
|
8
|
+
export declare const LOCAL_PUSH_BATCH_SIZE = 10;
|
8
9
|
/**
|
9
10
|
* The LeaderSyncProcessor manages synchronization of mutations between
|
10
11
|
* the local state and the sync backend, ensuring efficient and orderly processing.
|
@@ -12,28 +13,36 @@ export declare const BACKEND_PUSH_BATCH_SIZE = 50;
|
|
12
13
|
* In the LeaderSyncProcessor, pulling always has precedence over pushing.
|
13
14
|
*
|
14
15
|
* Responsibilities:
|
15
|
-
* - Queueing incoming local mutations in a
|
16
|
+
* - Queueing incoming local mutations in a localPushesQueue.
|
16
17
|
* - Broadcasting mutations to client sessions via pull queues.
|
17
18
|
* - Pushing mutations to the sync backend.
|
18
19
|
*
|
19
20
|
* Notes:
|
20
21
|
*
|
21
22
|
* local push processing:
|
22
|
-
* -
|
23
|
+
* - localPushesQueue:
|
23
24
|
* - Maintains events in ascending order.
|
24
25
|
* - Uses `Deferred` objects to resolve/reject events based on application success.
|
25
|
-
* - Processes events from the
|
26
|
+
* - Processes events from the queue, applying mutations in batches.
|
26
27
|
* - Controlled by a `Latch` to manage execution flow.
|
27
28
|
* - The latch closes on pull receipt and re-opens post-pull completion.
|
28
29
|
* - Processes up to `maxBatchSize` events per cycle.
|
29
30
|
*
|
31
|
+
* Currently we're advancing the db read model and mutation log in lockstep, but we could also decouple this in the future
|
32
|
+
*
|
33
|
+
* Tricky concurrency scenarios:
|
34
|
+
* - Queued local push batches becoming invalid due to a prior local push item being rejected.
|
35
|
+
* Solution: Introduce a generation number for local push batches which is used to filter out old batches items in case of rejection.
|
36
|
+
*
|
30
37
|
*/
|
31
|
-
export declare const makeLeaderSyncProcessor: ({ schema,
|
38
|
+
export declare const makeLeaderSyncProcessor: ({ schema, dbMutationLogMissing, dbMutationLog, dbReadModel, dbReadModelMissing, initialBlockingSyncContext, onError, }: {
|
32
39
|
schema: LiveStoreSchema;
|
33
40
|
/** Only used to know whether we can safely query dbMutationLog during setup execution */
|
34
|
-
|
41
|
+
dbMutationLogMissing: boolean;
|
35
42
|
dbMutationLog: SqliteDb;
|
36
|
-
|
43
|
+
dbReadModel: SqliteDb;
|
44
|
+
/** Only used to know whether we can safely query dbReadModel during setup execution */
|
45
|
+
dbReadModelMissing: boolean;
|
37
46
|
initialBlockingSyncContext: InitialBlockingSyncContext;
|
38
47
|
onError: "shutdown" | "ignore";
|
39
48
|
}) => Effect.Effect<LeaderSyncProcessor, UnexpectedError, Scope.Scope>;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"LeaderSyncProcessor.d.ts","sourceRoot":"","sources":["../../src/leader-thread/LeaderSyncProcessor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
1
|
+
{"version":3,"file":"LeaderSyncProcessor.d.ts","sourceRoot":"","sources":["../../src/leader-thread/LeaderSyncProcessor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAuB,KAAK,EAAU,MAAM,yBAAyB,CAAA;AACjF,OAAO,EAGL,MAAM,EASP,MAAM,yBAAyB,CAAA;AAGhC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAavD,OAAO,KAAK,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAGjF,eAAO,MAAM,uBAAuB,KAAK,CAAA;AACzC,eAAO,MAAM,qBAAqB,KAAK,CAAA;AASvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,uBAAuB,GAAI,wHAQrC;IACD,MAAM,EAAE,eAAe,CAAA;IACvB,yFAAyF;IACzF,oBAAoB,EAAE,OAAO,CAAA;IAC7B,aAAa,EAAE,QAAQ,CAAA;IACvB,WAAW,EAAE,QAAQ,CAAA;IACrB,uFAAuF;IACvF,kBAAkB,EAAE,OAAO,CAAA;IAC3B,0BAA0B,EAAE,0BAA0B,CAAA;IACtD,OAAO,EAAE,UAAU,GAAG,QAAQ,CAAA;CAC/B,KAAG,MAAM,CAAC,MAAM,CAAC,mBAAmB,EAAE,eAAe,EAAE,KAAK,CAAC,KAAK,CAgR/D,CAAA"}
|