effect-cqrs 0.1.0 → 0.2.0
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/README.md +34 -6
- package/dist/Aggregate.d.ts +47 -6
- package/dist/Aggregate.d.ts.map +1 -1
- package/dist/Aggregate.js +45 -1
- package/dist/Aggregate.js.map +1 -1
- package/dist/AggregateService.d.ts +83 -11
- package/dist/AggregateService.d.ts.map +1 -1
- package/dist/AggregateService.js +261 -35
- package/dist/AggregateService.js.map +1 -1
- package/dist/Causation.d.ts +34 -0
- package/dist/Causation.d.ts.map +1 -0
- package/dist/Causation.js +32 -0
- package/dist/Causation.js.map +1 -0
- package/dist/EventStore.d.ts +22 -0
- package/dist/EventStore.d.ts.map +1 -1
- package/dist/EventStore.js +30 -10
- package/dist/EventStore.js.map +1 -1
- package/dist/EventVersions.d.ts +64 -0
- package/dist/EventVersions.d.ts.map +1 -0
- package/dist/EventVersions.js +55 -0
- package/dist/EventVersions.js.map +1 -0
- package/dist/Fixture.d.ts +40 -5
- package/dist/Fixture.d.ts.map +1 -1
- package/dist/Fixture.js +44 -3
- package/dist/Fixture.js.map +1 -1
- package/dist/Metadata.d.ts +42 -0
- package/dist/Metadata.d.ts.map +1 -0
- package/dist/Metadata.js +39 -0
- package/dist/Metadata.js.map +1 -0
- package/dist/PostgresEventStore.d.ts.map +1 -1
- package/dist/PostgresEventStore.js +22 -13
- package/dist/PostgresEventStore.js.map +1 -1
- package/dist/Saga.d.ts +105 -0
- package/dist/Saga.d.ts.map +1 -0
- package/dist/Saga.js +97 -0
- package/dist/Saga.js.map +1 -0
- package/dist/SqliteEventStore.d.ts.map +1 -1
- package/dist/SqliteEventStore.js +32 -13
- package/dist/SqliteEventStore.js.map +1 -1
- package/dist/ViewModel.d.ts.map +1 -1
- package/dist/ViewModel.js +3 -1
- package/dist/ViewModel.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/package.json +5 -3
- package/src/Aggregate.ts +81 -9
- package/src/AggregateService.ts +418 -55
- package/src/Causation.ts +48 -0
- package/src/EventStore.ts +47 -10
- package/src/EventVersions.ts +104 -0
- package/src/Fixture.ts +92 -7
- package/src/Metadata.ts +52 -0
- package/src/PostgresEventStore.ts +24 -13
- package/src/Saga.ts +176 -0
- package/src/SqliteEventStore.ts +43 -13
- package/src/ViewModel.ts +3 -1
- package/src/index.ts +4 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PostgresEventStore.js","sourceRoot":"","sources":["../src/PostgresEventStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC7E,OAAO,EAAE,SAAS,EAAiB,MAAM,YAAY,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAO7C,MAAM,UAAU,GAAG,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAA;AAEnF,MAAM,UAAU,GAAG,CAAC,SAAiB,EAAE,EAAE,CAAC,CAAC,KAAc,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAA;AAElH,MAAM,iBAAiB,GAAG,CAAC,KAAwB,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,iBAAiB,CAAA;AAE/F,
|
|
1
|
+
{"version":3,"file":"PostgresEventStore.js","sourceRoot":"","sources":["../src/PostgresEventStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC7E,OAAO,EAAE,SAAS,EAAiB,MAAM,YAAY,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAO7C,MAAM,UAAU,GAAG,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAA;AAEnF,MAAM,UAAU,GAAG,CAAC,SAAiB,EAAE,EAAE,CAAC,CAAC,KAAc,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAA;AAElH,MAAM,iBAAiB,GAAG,CAAC,KAAwB,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,iBAAiB,CAAA;AAE/F,mFAAmF;AACnF,MAAM,aAAa,GAAG,KAAK,CAAA;AAE3B,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAC,OAAiB;IAC/D,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,SAAS,CAAA;IACtC,MAAM,MAAM,GAAG,OAAO,EAAE,WAAW,IAAI,aAAa,CAAA;IACpD,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAA;IAC1B,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,MAAM,OAAO,CAAC,CAAA;IAErC,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACrC,KAAK,CAAC,CAAC,GAAG,CAAA;mCACqB,MAAM;;;;;;;;;;;;;;KAcpC,CAAA;QACD,6DAA6D;QAC7D,KAAK,CAAC,CAAC,GAAG,CAAA,eAAe,MAAM,qEAAqE,CAAA;QACpG,KAAK,CAAC,CAAC,GAAG,CAAA,eAAe,MAAM,+CAA+C,CAAA;QAC9E,KAAK,CAAC,CAAC,GAAG,CAAA,eAAe,MAAM,6CAA6C,CAAA;QAC5E,KAAK,CAAC,CAAC,GAAG,CAAA,eAAe,MAAM,gEAAgE,CAAA;QAC/F,KAAK,CAAC,CAAC,GAAG,CAAA,8BAA8B,GAAG,CAAC,GAAG,MAAM,WAAW,CAAC,OAAO,MAAM,mBAAmB,CAAA;QACjG,KAAK,CAAC,CAAC,GAAG,CAAA;mCACqB,OAAO;;;;KAIrC,CAAA;QACD,KAAK,CAAC,CAAC,GAAG,CAAA,eAAe,OAAO,+CAA+C,CAAA;IACjF,CAAC,CAAC,CAAA;IACF,KAAK,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;IAEjE,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;;;;;;;;;;;;GAY3B,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,CAAC,KAA6B,EAAE,EAAE;QAC/C,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,mBAAmB,CAAC;YAClD,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,eAAe,EAAE,KAAK,CAAC,eAAe;SACvC,CAAC,CAAA;QACF,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YACzB,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAA8B;2DACL,MAAM;iCAChC,KAAK,CAAC,aAAa,uBAAuB,KAAK,CAAC,WAAW;OACrF,CAAA;YACD,IAAI,OAAO,EAAE,OAAO,KAAK,KAAK,CAAC,eAAe,EAAE,CAAC;gBAC/C,OAAO,KAAK,CAAC,CAAC,QAAQ,CAAA;YACxB,CAAC;YACD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAA;YAChD,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAA+B;iBAC7C,OAAO,8BAA8B,KAAK,CAAC,MAAM,CAAC,MAAM;OAClE,CAAA;YACD,MAAM,KAAK,GAAG,IAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;YACtD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAC/C,UAAU,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CACxF,CAAA;YACD,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAClC,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,cAAc,EAAE,KAAK,CAAC,aAAa;gBACnC,YAAY,EAAE,KAAK,CAAC,WAAW;gBAC/B,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,cAAc,EAAE,KAAK,CAAC,aAAa;gBACnC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC;gBACtC,SAAS;gBACT,cAAc,EAAE,KAAK,CAAC,aAAa;gBACnC,YAAY,EAAE,KAAK,CAAC,WAAW;gBAC/B,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC;aACzC,CAAC,CAAC,CAAA;YACH,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CACnB,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,EACjC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAA,eAAe,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAC1D,EAAE,OAAO,EAAE,IAAI,EAAE,CAClB,CAAA;YACD,OAAO,MAAM,CAAA;QACf,CAAC,CAAC,CAAC,IAAI,CACL,GAAG,CAAC,eAAe;QACnB,6EAA6E;QAC7E,+EAA+E;QAC/E,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CACvH,CAAA;IACH,CAAC,CAAA;IAED,MAAM,SAAS,GAAG,CAAC,MAA8B,EAAE,aAAqB,EAAE,KAAa,EAAE,EAAE;QACzF,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;QAChD,MAAM,OAAO,GAAG;YACd,GAAG,CAAA,GAAG,MAAM,eAAe,aAAa,EAAE;YAC1C,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA,aAAa,MAAM,CAAC,YAAY,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAClE,GAAG,CAAC,MAAM,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,gBAAgB,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;YACjG,GAAG,CAAC,MAAM,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;YAC3F,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;YAC/E,GAAG,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA,kBAAkB,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAC5G,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA,iBAAiB,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;SAC9G,CAAA;QACD,+EAA+E;QAC/E,iFAAiF;QACjF,+EAA+E;QAC/E,8EAA8E;QAC9E,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAA,SAAS,CAAC,CAAC,CAAC,GAAG,CAAA,GAAG,MAAM,WAAW,CAAA;QAChE,OAAO,GAAG,CAAA,UAAU,OAAO,SAAS,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,KAAK,UAAU,KAAK,EAAE,CAAC,IAAI,CAC1G,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAC1B,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CACpC,CAAA;IACH,CAAC,CAAA;IAED,MAAM,IAAI,GAAG,GAAG,CAA+B,4CAA4C,OAAO,EAAE,CAAC,IAAI,CACvG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,QAAQ,IAAI,CAAC,CAAC,EACzC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CACpC,CAAA;IAED,OAAO,KAAK,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;AAC5D,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,OAAiB,EAAuF,EAAE,CAC9H,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;AAEpD,oFAAoF;AACpF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAiB,EAA6E,EAAE,CAC/H,KAAK,CAAC,MAAM,CACV,WAAW,EACX,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,SAAS,CAAA;IACtC,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE,gBAAgB,IAAI,kBAAkB,CAAC,CAAA;IAElE,KAAK,CAAC,CAAC,GAAG,CAAA;qCACqB,KAAK;;;;OAInC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;IAEjD,OAAO,WAAW,CAAC,EAAE,CAAC;QACpB,GAAG,EAAE,CAAC,SAAS,EAAE,EAAE,CACjB,GAAG,CAA+B;uDACW,KAAK,uBAAuB,SAAS;WACjF,CAAC,IAAI,CACJ,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,QAAQ,IAAI,CAAC,CAAC,EACzC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAC1C;QACH,GAAG,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,CAC3B,GAAG,CAAA;0BACa,KAAK,mCAAmC,SAAS,KAAK,QAAQ;;WAE7E,CAAC,IAAI,CACJ,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAC1C;KACJ,CAAC,CAAA;AACJ,CAAC,CAAC,CACH,CAAA"}
|
package/dist/Saga.d.ts
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sagas: reactions that span several aggregates and outlive one command, run as
|
|
3
|
+
* durable workflows from `effect/workflow`.
|
|
4
|
+
*
|
|
5
|
+
* A saga has two halves. Its trigger is a view model that follows the log from a
|
|
6
|
+
* checkpoint and starts a workflow for each event it cares about. The workflow is
|
|
7
|
+
* the process itself: each command it runs is an `Activity`, so when the engine
|
|
8
|
+
* replays the workflow after a restart it skips the commands that already
|
|
9
|
+
* finished, and `withCompensation` undoes earlier steps when a later one fails.
|
|
10
|
+
*
|
|
11
|
+
* Triggers see an event at least once, and the workflow's idempotency key turns
|
|
12
|
+
* a second start into a join of the first execution. That only holds while the
|
|
13
|
+
* engine remembers the execution, so pair `WorkflowEngine.layerMemory` with
|
|
14
|
+
* in-memory checkpoints, as for view models, and a durable engine such as
|
|
15
|
+
* `ClusterWorkflowEngine` from `effect/cluster` with durable ones.
|
|
16
|
+
*
|
|
17
|
+
* An activity that is cut off before its result is saved runs again, so the
|
|
18
|
+
* commands a saga runs should be idempotent, for instance by recording the id of
|
|
19
|
+
* the transfer they belong to.
|
|
20
|
+
*/
|
|
21
|
+
import { Effect, Layer, Schedule, Schema } from "effect";
|
|
22
|
+
import { Activity, Workflow } from "effect/workflow";
|
|
23
|
+
import type { WorkflowEngine } from "effect/workflow";
|
|
24
|
+
import type * as Aggregate from "./Aggregate.ts";
|
|
25
|
+
import type { CommandResult } from "./AggregateService.ts";
|
|
26
|
+
import type { Checkpoints } from "./Checkpoints.ts";
|
|
27
|
+
import type { EventStore, EventStoreError } from "./EventStore.ts";
|
|
28
|
+
import * as ViewModel from "./ViewModel.ts";
|
|
29
|
+
/**
|
|
30
|
+
* The causation a workflow carries in its payload. A workflow body runs in the
|
|
31
|
+
* engine's fibers, not in the trigger's, so this is how commands it runs learn
|
|
32
|
+
* which event caused them.
|
|
33
|
+
*/
|
|
34
|
+
export declare const CausationSchema: Schema.Struct<{
|
|
35
|
+
readonly correlationId: Schema.String;
|
|
36
|
+
readonly causationId: Schema.String;
|
|
37
|
+
}>;
|
|
38
|
+
/** A workflow whose payload carries the causation of the event that started it. */
|
|
39
|
+
export type SagaWorkflow<Tag extends string = string, Fields extends Schema.Struct.Fields = Schema.Struct.Fields, Success extends Schema.Top = Schema.Top, Error extends Schema.Top = Schema.Top> = Workflow.Workflow<Tag, Schema.Struct<Fields & {
|
|
40
|
+
readonly causation: typeof CausationSchema;
|
|
41
|
+
}>, Success, Error>;
|
|
42
|
+
/**
|
|
43
|
+
* Defines the workflow of a saga. It is `Workflow.make` with a `causation` field
|
|
44
|
+
* added to the payload, which {@link start} fills in and {@link toLayer} applies.
|
|
45
|
+
*/
|
|
46
|
+
export declare const workflow: <const Tag extends string, const Fields extends Schema.Struct.Fields, Success extends Schema.Top = Schema.Void, Error extends Schema.Top = Schema.Never>(tag: Tag, options: {
|
|
47
|
+
readonly payload: Fields;
|
|
48
|
+
/** Identifies one run of the saga, such as a transfer id. Starting it again joins that run. */
|
|
49
|
+
readonly idempotencyKey: (payload: Schema.Struct.Type<Fields>) => string;
|
|
50
|
+
readonly success?: Success;
|
|
51
|
+
readonly error?: Error;
|
|
52
|
+
readonly suspendedRetrySchedule?: Schedule.Schedule<any, unknown> | undefined;
|
|
53
|
+
}) => SagaWorkflow<Tag, Fields, Success, Error>;
|
|
54
|
+
/**
|
|
55
|
+
* Registers the body of a saga's workflow with the engine. Commands the body
|
|
56
|
+
* runs record the event that started the saga as their cause.
|
|
57
|
+
*/
|
|
58
|
+
export declare const toLayer: <Tag extends string, Fields extends Schema.Struct.Fields, Success extends Schema.Top, Error extends Schema.Top, R>(self: SagaWorkflow<Tag, Fields, Success, Error>, execute: (payload: Schema.Struct.Type<Fields>, executionId: string) => Effect.Effect<Success["Type"], Error["Type"], R>) => Layer.Layer<never, never, WorkflowEngine.WorkflowEngine | Schema.Struct.DecodingServices<Fields & {
|
|
59
|
+
readonly causation: typeof CausationSchema;
|
|
60
|
+
}> | Schema.Struct.EncodingServices<Fields & {
|
|
61
|
+
readonly causation: typeof CausationSchema;
|
|
62
|
+
}> | Error["DecodingServices"] | Error["EncodingServices"] | Success["DecodingServices"] | Success["EncodingServices"] | Exclude<R, Workflow.Execution<Tag> | import("effect/Scope").Scope | WorkflowEngine.WorkflowEngine | WorkflowEngine.WorkflowInstance>>;
|
|
63
|
+
/**
|
|
64
|
+
* Starts a saga's workflow without waiting for it, and returns its execution id.
|
|
65
|
+
* Inside a trigger the event being handled becomes the saga's cause; elsewhere
|
|
66
|
+
* the current causation does, or a new correlation when there is none.
|
|
67
|
+
*/
|
|
68
|
+
export declare const start: <Tag extends string, Fields extends Schema.Struct.Fields, Success extends Schema.Top, Error extends Schema.Top>(self: SagaWorkflow<Tag, Fields, Success, Error>, payload: Schema.Struct.MakeIn<Fields>) => Effect.Effect<string, never, WorkflowEngine.WorkflowEngine>;
|
|
69
|
+
/**
|
|
70
|
+
* The trigger of a saga: a view model whose handlers start workflows with
|
|
71
|
+
* {@link start}, so it keeps a checkpoint and retries like view models do. Run it
|
|
72
|
+
* with {@link layer}, or with `ViewModel.layer` next to the other view models,
|
|
73
|
+
* where replaying it starts every saga again and joins the executions the engine
|
|
74
|
+
* still remembers.
|
|
75
|
+
*/
|
|
76
|
+
export declare const make: <const Name extends string, const Aggregates extends ReadonlyArray<Aggregate.Any>, const H extends ViewModel.Handlers<Aggregate.Event<Aggregates[number]>>>(options: {
|
|
77
|
+
readonly name: Name;
|
|
78
|
+
readonly aggregates: Aggregates;
|
|
79
|
+
readonly handlers: H;
|
|
80
|
+
}) => ViewModel.ViewModel<Name, { readonly [K in keyof H]-?: NonNullable<H[K]> extends (...args: any) => Effect.Effect<any, infer E, any> ? E : never; }[keyof H], { readonly [K in keyof H]-?: NonNullable<H[K]> extends (...args: any) => Effect.Effect<any, any, infer R> ? R : never; }[keyof H]>;
|
|
81
|
+
/**
|
|
82
|
+
* Runs triggers in the background for as long as the layer lives, apart from
|
|
83
|
+
* the view models. Workflows usually run commands, so they sit on top of the
|
|
84
|
+
* command side, which view models are often provided to.
|
|
85
|
+
*/
|
|
86
|
+
export declare const layer: <const Sagas extends ReadonlyArray<ViewModel.Any>>(sagas: Sagas) => Layer.Layer<never, EventStoreError, EventStore | Checkpoints | ViewModel.Context<Sagas[number]>>;
|
|
87
|
+
/** What a saga keeps of a command it ran: enough to wait for view models to see it. */
|
|
88
|
+
export declare const CommandOutcome: Schema.Struct<{
|
|
89
|
+
readonly aggregateId: Schema.String;
|
|
90
|
+
readonly version: Schema.Int;
|
|
91
|
+
readonly position: Schema.Int;
|
|
92
|
+
}>;
|
|
93
|
+
/**
|
|
94
|
+
* Runs a command as an activity of a saga's workflow, so a replay of the
|
|
95
|
+
* workflow returns the saved outcome instead of running it again.
|
|
96
|
+
*
|
|
97
|
+
* Failures matching `error`, such as a domain error the saga reacts to, are
|
|
98
|
+
* saved like a success. A lost race or a store error is retried a few times.
|
|
99
|
+
* Anything else ends the workflow as a defect, which runs its compensations.
|
|
100
|
+
*/
|
|
101
|
+
export declare const command: <Err extends Schema.Top = typeof Schema.Never, E = never, R = never>(name: string, options: {
|
|
102
|
+
readonly execute: Effect.Effect<CommandResult<unknown>, E, R>;
|
|
103
|
+
readonly error?: Err | undefined;
|
|
104
|
+
}) => Activity.Activity<typeof CommandOutcome, Err, R>;
|
|
105
|
+
//# sourceMappingURL=Saga.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Saga.d.ts","sourceRoot":"","sources":["../src/Saga.ts"],"names":[],"mappings":"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"}
|
package/dist/Saga.js
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sagas: reactions that span several aggregates and outlive one command, run as
|
|
3
|
+
* durable workflows from `effect/workflow`.
|
|
4
|
+
*
|
|
5
|
+
* A saga has two halves. Its trigger is a view model that follows the log from a
|
|
6
|
+
* checkpoint and starts a workflow for each event it cares about. The workflow is
|
|
7
|
+
* the process itself: each command it runs is an `Activity`, so when the engine
|
|
8
|
+
* replays the workflow after a restart it skips the commands that already
|
|
9
|
+
* finished, and `withCompensation` undoes earlier steps when a later one fails.
|
|
10
|
+
*
|
|
11
|
+
* Triggers see an event at least once, and the workflow's idempotency key turns
|
|
12
|
+
* a second start into a join of the first execution. That only holds while the
|
|
13
|
+
* engine remembers the execution, so pair `WorkflowEngine.layerMemory` with
|
|
14
|
+
* in-memory checkpoints, as for view models, and a durable engine such as
|
|
15
|
+
* `ClusterWorkflowEngine` from `effect/cluster` with durable ones.
|
|
16
|
+
*
|
|
17
|
+
* An activity that is cut off before its result is saved runs again, so the
|
|
18
|
+
* commands a saga runs should be idempotent, for instance by recording the id of
|
|
19
|
+
* the transfer they belong to.
|
|
20
|
+
*/
|
|
21
|
+
import { Effect, Layer, Schedule, Schema } from "effect";
|
|
22
|
+
import { Activity, Workflow } from "effect/workflow";
|
|
23
|
+
import * as Causation from "./Causation.js";
|
|
24
|
+
import * as ViewModel from "./ViewModel.js";
|
|
25
|
+
/**
|
|
26
|
+
* The causation a workflow carries in its payload. A workflow body runs in the
|
|
27
|
+
* engine's fibers, not in the trigger's, so this is how commands it runs learn
|
|
28
|
+
* which event caused them.
|
|
29
|
+
*/
|
|
30
|
+
export const CausationSchema = Schema.Struct({
|
|
31
|
+
correlationId: Schema.String,
|
|
32
|
+
causationId: Schema.String
|
|
33
|
+
});
|
|
34
|
+
/**
|
|
35
|
+
* Defines the workflow of a saga. It is `Workflow.make` with a `causation` field
|
|
36
|
+
* added to the payload, which {@link start} fills in and {@link toLayer} applies.
|
|
37
|
+
*/
|
|
38
|
+
export const workflow = (tag, options) => Workflow.make(tag, {
|
|
39
|
+
...options,
|
|
40
|
+
payload: { ...options.payload, causation: CausationSchema }
|
|
41
|
+
});
|
|
42
|
+
/**
|
|
43
|
+
* Registers the body of a saga's workflow with the engine. Commands the body
|
|
44
|
+
* runs record the event that started the saga as their cause.
|
|
45
|
+
*/
|
|
46
|
+
export const toLayer = (self, execute) => self.toLayer((payload, executionId) => Causation.withCausation(execute(payload, executionId), payload.causation));
|
|
47
|
+
/**
|
|
48
|
+
* Starts a saga's workflow without waiting for it, and returns its execution id.
|
|
49
|
+
* Inside a trigger the event being handled becomes the saga's cause; elsewhere
|
|
50
|
+
* the current causation does, or a new correlation when there is none.
|
|
51
|
+
*/
|
|
52
|
+
export const start = (self, payload) => Causation.CurrentCausation.use((current) => {
|
|
53
|
+
const id = crypto.randomUUID();
|
|
54
|
+
const causation = current ?? { correlationId: id, causationId: id };
|
|
55
|
+
return self.execute({ ...payload, causation }, { discard: true });
|
|
56
|
+
});
|
|
57
|
+
/**
|
|
58
|
+
* The trigger of a saga: a view model whose handlers start workflows with
|
|
59
|
+
* {@link start}, so it keeps a checkpoint and retries like view models do. Run it
|
|
60
|
+
* with {@link layer}, or with `ViewModel.layer` next to the other view models,
|
|
61
|
+
* where replaying it starts every saga again and joins the executions the engine
|
|
62
|
+
* still remembers.
|
|
63
|
+
*/
|
|
64
|
+
export const make = (options) => ViewModel.make({ ...options, dispose: Effect.void });
|
|
65
|
+
/**
|
|
66
|
+
* Runs triggers in the background for as long as the layer lives, apart from
|
|
67
|
+
* the view models. Workflows usually run commands, so they sit on top of the
|
|
68
|
+
* command side, which view models are often provided to.
|
|
69
|
+
*/
|
|
70
|
+
export const layer = (sagas) => Layer.provide(Layer.empty, ViewModel.layer(sagas));
|
|
71
|
+
/** What a saga keeps of a command it ran: enough to wait for view models to see it. */
|
|
72
|
+
export const CommandOutcome = Schema.Struct({
|
|
73
|
+
aggregateId: Schema.String,
|
|
74
|
+
version: Schema.Int,
|
|
75
|
+
position: Schema.Int
|
|
76
|
+
});
|
|
77
|
+
// Losing a race or a store error usually passes, so try again before giving up.
|
|
78
|
+
const transient = (error) => Schema.is(Schema.Struct({ _tag: Schema.Literals(["ConcurrencyConflict", "EventStoreError"]) }))(error);
|
|
79
|
+
const transientRetry = Schedule.exponential("50 millis").pipe(Schedule.jittered);
|
|
80
|
+
/**
|
|
81
|
+
* Runs a command as an activity of a saga's workflow, so a replay of the
|
|
82
|
+
* workflow returns the saved outcome instead of running it again.
|
|
83
|
+
*
|
|
84
|
+
* Failures matching `error`, such as a domain error the saga reacts to, are
|
|
85
|
+
* saved like a success. A lost race or a store error is retried a few times.
|
|
86
|
+
* Anything else ends the workflow as a defect, which runs its compensations.
|
|
87
|
+
*/
|
|
88
|
+
export const command = (name, options) => {
|
|
89
|
+
const expected = options.error === undefined ? () => false : Schema.is(Schema.toType(options.error));
|
|
90
|
+
return Activity.make({
|
|
91
|
+
name,
|
|
92
|
+
success: CommandOutcome,
|
|
93
|
+
error: options.error,
|
|
94
|
+
execute: options.execute.pipe(Effect.retry({ while: transient, schedule: transientRetry, times: 5 }), Effect.map(({ aggregateId, position, version }) => ({ aggregateId, version, position })), Effect.catch((error) => expected(error) ? Effect.fail(error) : Effect.die(error)))
|
|
95
|
+
});
|
|
96
|
+
};
|
|
97
|
+
//# sourceMappingURL=Saga.js.map
|
package/dist/Saga.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Saga.js","sourceRoot":"","sources":["../src/Saga.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqliteEventStore.d.ts","sourceRoot":"","sources":["../src/SqliteEventStore.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAmB,MAAM,EAAE,KAAK,EAAU,MAAM,QAAQ,CAAA;AAC/D,OAAO,EAAE,SAAS,EAAiB,MAAM,YAAY,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;CACnC;
|
|
1
|
+
{"version":3,"file":"SqliteEventStore.d.ts","sourceRoot":"","sources":["../src/SqliteEventStore.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAmB,MAAM,EAAE,KAAK,EAAU,MAAM,QAAQ,CAAA;AAC/D,OAAO,EAAE,SAAS,EAAiB,MAAM,YAAY,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;CACnC;AAqBD,eAAO,MAAM,IAAI;;;;;;mDA4Hf,CAAA;AAEF,eAAO,MAAM,KAAK,aAAc,OAAO,KAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,eAAe,EAAE,SAAS,CAAC,SAAS,CACxE,CAAA;AAEpD,oFAAoF;AACpF,eAAO,MAAM,gBAAgB,aAAc,OAAO,KAAG,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,UAAU,CAAC,eAAe,EAAE,SAAS,CAAC,SAAS,CA8B1H,CAAA"}
|
package/dist/SqliteEventStore.js
CHANGED
|
@@ -10,11 +10,18 @@ import { Checkpoints } from "./Checkpoints.js";
|
|
|
10
10
|
import * as EventStore from "./EventStore.js";
|
|
11
11
|
const EventRow = Schema.Struct({
|
|
12
12
|
...EventStore.StoredEvent.fields,
|
|
13
|
-
payload: Schema.fromJsonString(Schema.Json)
|
|
13
|
+
payload: Schema.fromJsonString(Schema.Json),
|
|
14
|
+
metadata: Schema.fromJsonString(Schema.JsonObject)
|
|
14
15
|
});
|
|
15
16
|
const decodeRows = Schema.decodeUnknownEffect(Schema.Array(EventRow));
|
|
16
17
|
const storeError = (operation) => (cause) => new EventStore.EventStoreError({ operation, cause });
|
|
17
18
|
const isUniqueViolation = (error) => error.reason._tag === "UniqueViolation";
|
|
19
|
+
const addedColumns = [
|
|
20
|
+
["schema_version", "INTEGER NOT NULL DEFAULT 1"],
|
|
21
|
+
["correlation_id", "TEXT"],
|
|
22
|
+
["causation_id", "TEXT"],
|
|
23
|
+
["metadata", "TEXT NOT NULL DEFAULT '{}'"]
|
|
24
|
+
];
|
|
18
25
|
export const make = Effect.fnUntraced(function* (options) {
|
|
19
26
|
const sql = yield* SqlClient.SqlClient;
|
|
20
27
|
const events = sql(options?.eventsTable ?? "cqrs_events");
|
|
@@ -26,11 +33,19 @@ export const make = Effect.fnUntraced(function* (options) {
|
|
|
26
33
|
aggregate_id TEXT NOT NULL,
|
|
27
34
|
version INTEGER NOT NULL,
|
|
28
35
|
type TEXT NOT NULL,
|
|
36
|
+
schema_version INTEGER NOT NULL DEFAULT 1,
|
|
29
37
|
payload TEXT NOT NULL,
|
|
30
38
|
timestamp INTEGER NOT NULL,
|
|
39
|
+
correlation_id TEXT,
|
|
40
|
+
causation_id TEXT,
|
|
41
|
+
metadata TEXT NOT NULL DEFAULT '{}',
|
|
31
42
|
UNIQUE (aggregate_name, aggregate_id, version)
|
|
32
43
|
)
|
|
33
44
|
`.pipe(Effect.mapError(storeError("initialize")));
|
|
45
|
+
// Tables created before these columns existed get them here. SQLite has no
|
|
46
|
+
// `ADD COLUMN IF NOT EXISTS`, so the existing columns are listed first.
|
|
47
|
+
const existing = yield* sql `PRAGMA table_info(${events})`.pipe(Effect.map((rows) => new Set(rows.map(({ name }) => name))), Effect.mapError(storeError("initialize")));
|
|
48
|
+
yield* Effect.forEach(addedColumns.filter(([name]) => !existing.has(name)), ([name, definition]) => sql `ALTER TABLE ${events} ADD COLUMN ${sql(name)} ${sql.literal(definition)}`.pipe(Effect.mapError(storeError("initialize"))), { discard: true });
|
|
34
49
|
yield* sql `
|
|
35
50
|
CREATE INDEX IF NOT EXISTS ${sql(`${indexPrefix}_type_idx`)} ON ${events} (type, position)
|
|
36
51
|
`.pipe(Effect.mapError(storeError("initialize")));
|
|
@@ -40,8 +55,12 @@ export const make = Effect.fnUntraced(function* (options) {
|
|
|
40
55
|
aggregate_id AS "aggregateId",
|
|
41
56
|
version,
|
|
42
57
|
type,
|
|
58
|
+
schema_version AS "schemaVersion",
|
|
43
59
|
payload,
|
|
44
|
-
timestamp
|
|
60
|
+
timestamp,
|
|
61
|
+
correlation_id AS "correlationId",
|
|
62
|
+
causation_id AS "causationId",
|
|
63
|
+
metadata
|
|
45
64
|
`);
|
|
46
65
|
const append = (input) => {
|
|
47
66
|
const conflict = new EventStore.ConcurrencyConflict({
|
|
@@ -58,26 +77,26 @@ export const make = Effect.fnUntraced(function* (options) {
|
|
|
58
77
|
return yield* conflict;
|
|
59
78
|
}
|
|
60
79
|
const timestamp = yield* Clock.currentTimeMillis;
|
|
80
|
+
const metadata = JSON.stringify(input.metadata ?? {});
|
|
61
81
|
return yield* Effect.forEach(input.events, (event, index) => sql `
|
|
62
|
-
INSERT INTO ${events} (
|
|
82
|
+
INSERT INTO ${events} (
|
|
83
|
+
aggregate_name, aggregate_id, version, type, schema_version, payload, timestamp, correlation_id, causation_id,
|
|
84
|
+
metadata
|
|
85
|
+
)
|
|
63
86
|
VALUES (
|
|
64
87
|
${input.aggregateName},
|
|
65
88
|
${input.aggregateId},
|
|
66
89
|
${input.expectedVersion + index + 1},
|
|
67
90
|
${event.type},
|
|
91
|
+
${event.schemaVersion ?? 1},
|
|
68
92
|
${JSON.stringify(event.payload)},
|
|
69
|
-
${timestamp}
|
|
93
|
+
${timestamp},
|
|
94
|
+
${input.correlationId ?? null},
|
|
95
|
+
${input.causationId ?? null},
|
|
96
|
+
${metadata}
|
|
70
97
|
)
|
|
71
98
|
RETURNING position
|
|
72
|
-
`.pipe(Effect.map(([row]) => (
|
|
73
|
-
position: row.position,
|
|
74
|
-
aggregateName: input.aggregateName,
|
|
75
|
-
aggregateId: input.aggregateId,
|
|
76
|
-
version: input.expectedVersion + index + 1,
|
|
77
|
-
type: event.type,
|
|
78
|
-
payload: event.payload,
|
|
79
|
-
timestamp: DateTime.makeUnsafe(timestamp)
|
|
80
|
-
}))));
|
|
99
|
+
`.pipe(Effect.map(([row]) => EventStore.toStored(input, event, index, row.position, DateTime.makeUnsafe(timestamp)))));
|
|
81
100
|
}).pipe(sql.withTransaction,
|
|
82
101
|
// The version check can't see a writer racing it on a driver that opens
|
|
83
102
|
// deferred transactions, but the UNIQUE constraint can.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqliteEventStore.js","sourceRoot":"","sources":["../src/SqliteEventStore.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/D,OAAO,EAAE,SAAS,EAAiB,MAAM,YAAY,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAO7C,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7B,GAAG,UAAU,CAAC,WAAW,CAAC,MAAM;IAChC,OAAO,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"SqliteEventStore.js","sourceRoot":"","sources":["../src/SqliteEventStore.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/D,OAAO,EAAE,SAAS,EAAiB,MAAM,YAAY,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAO7C,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7B,GAAG,UAAU,CAAC,WAAW,CAAC,MAAM;IAChC,OAAO,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC;IAC3C,QAAQ,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC;CACnD,CAAC,CAAA;AAEF,MAAM,UAAU,GAAG,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAA;AAErE,MAAM,UAAU,GAAG,CAAC,SAAiB,EAAE,EAAE,CAAC,CAAC,KAAc,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAA;AAElH,MAAM,iBAAiB,GAAG,CAAC,KAAwB,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,iBAAiB,CAAA;AAE/F,MAAM,YAAY,GAA6C;IAC7D,CAAC,gBAAgB,EAAE,4BAA4B,CAAC;IAChD,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAC1B,CAAC,cAAc,EAAE,MAAM,CAAC;IACxB,CAAC,UAAU,EAAE,4BAA4B,CAAC;CAC3C,CAAA;AAED,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAC,OAAiB;IAC/D,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,SAAS,CAAA;IACtC,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,EAAE,WAAW,IAAI,aAAa,CAAC,CAAA;IACzD,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,aAAa,CAAA;IAEzD,KAAK,CAAC,CAAC,GAAG,CAAA;iCACqB,MAAM;;;;;;;;;;;;;;GAcpC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;IACjD,2EAA2E;IAC3E,wEAAwE;IACxE,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,GAAG,CAA2B,qBAAqB,MAAM,GAAG,CAAC,IAAI,CACvF,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAC3D,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAC1C,CAAA;IACD,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CACnB,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EACpD,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,EAAE,CACrB,GAAG,CAAA,eAAe,MAAM,eAAe,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAChF,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAC1C,EACH,EAAE,OAAO,EAAE,IAAI,EAAE,CAClB,CAAA;IACD,KAAK,CAAC,CAAC,GAAG,CAAA;iCACqB,GAAG,CAAC,GAAG,WAAW,WAAW,CAAC,OAAO,MAAM;GACzE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;IAEjD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;;;;;;;;;;;;GAY3B,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,CAAC,KAA6B,EAAE,EAAE;QAC/C,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,mBAAmB,CAAC;YAClD,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,eAAe,EAAE,KAAK,CAAC,eAAe;SACvC,CAAC,CAAA;QACF,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YACzB,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAA8B;2DACL,MAAM;iCAChC,KAAK,CAAC,aAAa,uBAAuB,KAAK,CAAC,WAAW;OACrF,CAAA;YACD,IAAI,OAAO,EAAE,OAAO,KAAK,KAAK,CAAC,eAAe,EAAE,CAAC;gBAC/C,OAAO,KAAK,CAAC,CAAC,QAAQ,CAAA;YACxB,CAAC;YACD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAA;YAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAA;YACrD,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAC1D,GAAG,CAA+B;wBAClB,MAAM;;;;;cAKhB,KAAK,CAAC,aAAa;cACnB,KAAK,CAAC,WAAW;cACjB,KAAK,CAAC,eAAe,GAAG,KAAK,GAAG,CAAC;cACjC,KAAK,CAAC,IAAI;cACV,KAAK,CAAC,aAAa,IAAI,CAAC;cACxB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC;cAC7B,SAAS;cACT,KAAK,CAAC,aAAa,IAAI,IAAI;cAC3B,KAAK,CAAC,WAAW,IAAI,IAAI;cACzB,QAAQ;;;SAGb,CAAC,IAAI,CACJ,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAC/G,CAAC,CAAA;QACN,CAAC,CAAC,CAAC,IAAI,CACL,GAAG,CAAC,eAAe;QACnB,wEAAwE;QACxE,wDAAwD;QACxD,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CACvH,CAAA;IACH,CAAC,CAAA;IAED,MAAM,SAAS,GAAG,CAAC,MAA8B,EAAE,aAAqB,EAAE,KAAa,EAAE,EAAE;QACzF,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;QAChD,MAAM,OAAO,GAAG;YACd,GAAG,CAAA,cAAc,aAAa,EAAE;YAChC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA,aAAa,MAAM,CAAC,YAAY,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAClE,GAAG,CAAC,MAAM,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,gBAAgB,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;YACjG,GAAG,CAAC,MAAM,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;YAC3F,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;YAC/E,GAAG,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA,gBAAgB,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAC1G,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA,eAAe,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;SAC5G,CAAA;QACD,4EAA4E;QAC5E,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAA,SAAS,CAAC,CAAC,CAAC,GAAG,CAAA,UAAU,CAAA;QACtD,OAAO,GAAG,CAAA,UAAU,OAAO,SAAS,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,KAAK,UAAU,KAAK,EAAE,CAAC,IAAI,CAC1G,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAC1B,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CACpC,CAAA;IACH,CAAC,CAAA;IAED,MAAM,IAAI,GAAG,GAAG,CAA+B,sDAAsD,MAAM,EAAE,CAAC,IAAI,CAChH,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,QAAQ,IAAI,CAAC,CAAC,EACzC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CACpC,CAAA;IAED,OAAO,KAAK,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;AAC5D,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,OAAiB,EAAuF,EAAE,CAC9H,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;AAEpD,oFAAoF;AACpF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAiB,EAA6E,EAAE,CAC/H,KAAK,CAAC,MAAM,CACV,WAAW,EACX,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,SAAS,CAAA;IACtC,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE,gBAAgB,IAAI,kBAAkB,CAAC,CAAA;IAElE,KAAK,CAAC,CAAC,GAAG,CAAA;qCACqB,KAAK;;;;OAInC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;IAEjD,OAAO,WAAW,CAAC,EAAE,CAAC;QACpB,GAAG,EAAE,CAAC,SAAS,EAAE,EAAE,CACjB,GAAG,CAA+B,wBAAwB,KAAK,uBAAuB,SAAS,EAAE,CAAC,IAAI,CACpG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,QAAQ,IAAI,CAAC,CAAC,EACzC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAC1C;QACH,GAAG,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,CAC3B,GAAG,CAAA;0BACa,KAAK,mCAAmC,SAAS,KAAK,QAAQ;;WAE7E,CAAC,IAAI,CACJ,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAC1C;KACJ,CAAC,CAAA;AACJ,CAAC,CAAC,CACH,CAAA"}
|
package/dist/ViewModel.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewModel.d.ts","sourceRoot":"","sources":["../src/ViewModel.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EACL,OAAO,EAEP,MAAM,EACN,KAAK,EACL,MAAM,EAGN,MAAM,EAIP,MAAM,QAAQ,CAAA;AACf,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AACtC,OAAO,KAAK,KAAK,SAAS,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"ViewModel.d.ts","sourceRoot":"","sources":["../src/ViewModel.ts"],"names":[],"mappings":"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"}
|
package/dist/ViewModel.js
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import { Context, Duration, Effect, Layer, Option, Ref, Schedule, Schema, Semaphore, Stream, SubscriptionRef } from "effect";
|
|
11
11
|
import { makeEventDecoder } from "./AggregateService.js";
|
|
12
|
+
import * as Causation from "./Causation.js";
|
|
12
13
|
import { Checkpoints } from "./Checkpoints.js";
|
|
13
14
|
import { EventStore } from "./EventStore.js";
|
|
14
15
|
export class UnknownViewModel extends Schema.TaggedError()("UnknownViewModel", {
|
|
@@ -81,7 +82,8 @@ const makeRunner = Effect.fnUntraced(function* (viewModel, tail) {
|
|
|
81
82
|
: decode(stored).pipe(Effect.tap((event) => Effect.sync(() => void tail.decoded.set(stored, event))));
|
|
82
83
|
const handle = (decodeEvent) => (stored) => Effect.gen(function* () {
|
|
83
84
|
const event = yield* decodeEvent(stored);
|
|
84
|
-
|
|
85
|
+
// Commands the handler runs record this event as their cause.
|
|
86
|
+
yield* viewModel.handlers[stored.type](event, stored).pipe(Causation.causedBy(stored));
|
|
85
87
|
}).pipe(Effect.mapError(fail(stored.position)), Effect.catchDefect((defect) => Effect.fail(fail(stored.position)(defect))));
|
|
86
88
|
const save = (to) => checkpoints.set(name, to).pipe(Effect.mapError(fail(0)), Effect.andThen(Ref.set(saved, to)));
|
|
87
89
|
const advance = (to) => Ref.get(saved).pipe(Effect.flatMap((last) => to < last || to - last >= checkpointInterval ? save(to) : Effect.void), Effect.andThen(SubscriptionRef.set(position, to)));
|
package/dist/ViewModel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewModel.js","sourceRoot":"","sources":["../src/ViewModel.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ViewModel.js","sourceRoot":"","sources":["../src/ViewModel.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
export * as Aggregate from "./Aggregate.ts";
|
|
2
2
|
export * as AggregateService from "./AggregateService.ts";
|
|
3
|
+
export * as Causation from "./Causation.ts";
|
|
3
4
|
export * as Checkpoints from "./Checkpoints.ts";
|
|
4
5
|
export * as EventStore from "./EventStore.ts";
|
|
6
|
+
export * as EventVersions from "./EventVersions.ts";
|
|
5
7
|
export * as Fixture from "./Fixture.ts";
|
|
8
|
+
export * as Metadata from "./Metadata.ts";
|
|
6
9
|
export * as PostgresEventStore from "./PostgresEventStore.ts";
|
|
10
|
+
export * as Saga from "./Saga.ts";
|
|
7
11
|
export * as SqliteEventStore from "./SqliteEventStore.ts";
|
|
8
12
|
export * as ViewModel from "./ViewModel.ts";
|
|
9
13
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAA;AACzD,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAA;AAC7D,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAA;AACzD,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAA;AACzD,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAA;AAC7D,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAA;AACzD,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
export * as Aggregate from "./Aggregate.js";
|
|
2
2
|
export * as AggregateService from "./AggregateService.js";
|
|
3
|
+
export * as Causation from "./Causation.js";
|
|
3
4
|
export * as Checkpoints from "./Checkpoints.js";
|
|
4
5
|
export * as EventStore from "./EventStore.js";
|
|
6
|
+
export * as EventVersions from "./EventVersions.js";
|
|
5
7
|
export * as Fixture from "./Fixture.js";
|
|
8
|
+
export * as Metadata from "./Metadata.js";
|
|
6
9
|
export * as PostgresEventStore from "./PostgresEventStore.js";
|
|
10
|
+
export * as Saga from "./Saga.js";
|
|
7
11
|
export * as SqliteEventStore from "./SqliteEventStore.js";
|
|
8
12
|
export * as ViewModel from "./ViewModel.js";
|
|
9
13
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAA;AACzD,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAA;AAC7D,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAA;AACzD,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAA;AACzD,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAA;AAC7D,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAA;AACzD,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "effect-cqrs",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "CQRS and event sourcing for Effect v4, a port of moleculer-cqrs",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"effect",
|
|
@@ -71,14 +71,16 @@
|
|
|
71
71
|
"vitest": "^5.0.5"
|
|
72
72
|
},
|
|
73
73
|
"scripts": {
|
|
74
|
-
"check": "tsc --noEmit && tsc --noEmit -p examples/bank-ui",
|
|
74
|
+
"check": "tsc --noEmit && tsc --noEmit -p examples/bank-ui && tsc --noEmit -p examples/shop-ui",
|
|
75
75
|
"build": "rm -rf dist && tsc -p tsconfig.build.json",
|
|
76
76
|
"test": "vitest run",
|
|
77
77
|
"test:watch": "vitest",
|
|
78
78
|
"example": "node examples/todo/main.ts",
|
|
79
|
+
"tutorial": "node examples/tutorial/main.ts",
|
|
79
80
|
"ui": "vite examples/bank-ui",
|
|
81
|
+
"ui:shop": "vite examples/shop-ui",
|
|
80
82
|
"docs": "astro dev --root docs",
|
|
81
|
-
"docs:build": "vite build examples/bank-ui --base \"${DOCS_BASE:-/effect-cqrs}/demo/\" --outDir ../../docs/public/demo --emptyOutDir && astro build --root docs",
|
|
83
|
+
"docs:build": "vite build examples/bank-ui --base \"${DOCS_BASE:-/effect-cqrs}/demo/\" --outDir ../../docs/public/demo --emptyOutDir && vite build examples/shop-ui --base \"${DOCS_BASE:-/effect-cqrs}/shop-demo/\" --outDir ../../docs/public/shop-demo --emptyOutDir && astro build --root docs",
|
|
82
84
|
"docs:preview": "astro preview --root docs",
|
|
83
85
|
"bench": "node bench/performance.ts",
|
|
84
86
|
"stress": "node --expose-gc bench/stress.ts",
|