effect-mq 0.4.2 → 0.6.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.
Files changed (64) hide show
  1. package/README.md +85 -17
  2. package/dist/Flow.d.ts +381 -0
  3. package/dist/Flow.d.ts.map +1 -0
  4. package/dist/Flow.js +340 -0
  5. package/dist/Flow.js.map +1 -0
  6. package/dist/Job.d.ts +37 -6
  7. package/dist/Job.d.ts.map +1 -1
  8. package/dist/Job.js +17 -2
  9. package/dist/Job.js.map +1 -1
  10. package/dist/JobSchedules.d.ts +112 -0
  11. package/dist/JobSchedules.d.ts.map +1 -0
  12. package/dist/JobSchedules.js +106 -0
  13. package/dist/JobSchedules.js.map +1 -0
  14. package/dist/JobStore.d.ts +320 -10
  15. package/dist/JobStore.d.ts.map +1 -1
  16. package/dist/JobStore.js.map +1 -1
  17. package/dist/MemoryJobStore.d.ts.map +1 -1
  18. package/dist/MemoryJobStore.js +336 -8
  19. package/dist/MemoryJobStore.js.map +1 -1
  20. package/dist/Metrics.d.ts +31 -0
  21. package/dist/Metrics.d.ts.map +1 -1
  22. package/dist/Metrics.js +39 -0
  23. package/dist/Metrics.js.map +1 -1
  24. package/dist/Worker.d.ts +120 -11
  25. package/dist/Worker.d.ts.map +1 -1
  26. package/dist/Worker.js +452 -26
  27. package/dist/Worker.js.map +1 -1
  28. package/dist/drizzle-postgres/DrizzleJobStore.d.ts +19 -1
  29. package/dist/drizzle-postgres/DrizzleJobStore.d.ts.map +1 -1
  30. package/dist/drizzle-postgres/DrizzleJobStore.js +662 -81
  31. package/dist/drizzle-postgres/DrizzleJobStore.js.map +1 -1
  32. package/dist/drizzle-postgres/schema.d.ts +310 -3
  33. package/dist/drizzle-postgres/schema.d.ts.map +1 -1
  34. package/dist/drizzle-postgres/schema.js +68 -1
  35. package/dist/drizzle-postgres/schema.js.map +1 -1
  36. package/dist/index.d.ts +14 -0
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +14 -0
  39. package/dist/index.js.map +1 -1
  40. package/dist/redis/RedisJobStore.d.ts.map +1 -1
  41. package/dist/redis/RedisJobStore.js +221 -19
  42. package/dist/redis/RedisJobStore.js.map +1 -1
  43. package/dist/redis/scripts.d.ts +118 -11
  44. package/dist/redis/scripts.d.ts.map +1 -1
  45. package/dist/redis/scripts.js +497 -28
  46. package/dist/redis/scripts.js.map +1 -1
  47. package/dist/testing/conformance.d.ts +6 -0
  48. package/dist/testing/conformance.d.ts.map +1 -1
  49. package/dist/testing/conformance.js +765 -1
  50. package/dist/testing/conformance.js.map +1 -1
  51. package/package.json +1 -1
  52. package/src/Flow.ts +778 -0
  53. package/src/Job.ts +42 -11
  54. package/src/JobSchedules.ts +223 -0
  55. package/src/JobStore.ts +347 -9
  56. package/src/MemoryJobStore.ts +372 -8
  57. package/src/Metrics.ts +43 -0
  58. package/src/Worker.ts +726 -37
  59. package/src/drizzle-postgres/DrizzleJobStore.ts +827 -82
  60. package/src/drizzle-postgres/schema.ts +94 -0
  61. package/src/index.ts +16 -0
  62. package/src/redis/RedisJobStore.ts +291 -8
  63. package/src/redis/scripts.ts +529 -26
  64. package/src/testing/conformance.ts +989 -1
@@ -63,6 +63,14 @@ declare const jobsColumns: <JobName extends string, Queue extends string>() => {
63
63
  cancelRequested: import("drizzle-orm/pg-core").SetHasDefault<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgBooleanBuilder>>;
64
64
  dedupeKey: import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>;
65
65
  trace: import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").PgJsonbBuilder, JobStore.TraceContext>;
66
+ /** Flow-parent link on child jobs (opaque envelope, like `trace`). */
67
+ parent: import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").PgJsonbBuilder, JobStore.ParentEnvelope>;
68
+ /** Flow bookkeeping: NULL together until a FanOut ack lands the manifest. */
69
+ flowFailFast: import("drizzle-orm/pg-core").PgBooleanBuilder;
70
+ flowPending: import("drizzle-orm/pg-core").PgIntegerBuilder;
71
+ flowCompleted: import("drizzle-orm/pg-core").PgIntegerBuilder;
72
+ flowFailed: import("drizzle-orm/pg-core").PgIntegerBuilder;
73
+ flowCancelled: import("drizzle-orm/pg-core").PgIntegerBuilder;
66
74
  runAt: import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTimestampBuilder>;
67
75
  enqueuedAt: import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTimestampBuilder>;
68
76
  processedAt: import("drizzle-orm/pg-core").PgTimestampBuilder;
@@ -122,6 +130,14 @@ export declare const mqJobs: <JobName extends string = string, Queue extends str
122
130
  cancelRequested: import("drizzle-orm/pg-core").SetHasDefault<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgBooleanBuilder>>;
123
131
  dedupeKey: import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>;
124
132
  trace: import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").PgJsonbBuilder, JobStore.TraceContext>;
133
+ /** Flow-parent link on child jobs (opaque envelope, like `trace`). */
134
+ parent: import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").PgJsonbBuilder, JobStore.ParentEnvelope>;
135
+ /** Flow bookkeeping: NULL together until a FanOut ack lands the manifest. */
136
+ flowFailFast: import("drizzle-orm/pg-core").PgBooleanBuilder;
137
+ flowPending: import("drizzle-orm/pg-core").PgIntegerBuilder;
138
+ flowCompleted: import("drizzle-orm/pg-core").PgIntegerBuilder;
139
+ flowFailed: import("drizzle-orm/pg-core").PgIntegerBuilder;
140
+ flowCancelled: import("drizzle-orm/pg-core").PgIntegerBuilder;
125
141
  runAt: import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTimestampBuilder>;
126
142
  enqueuedAt: import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTimestampBuilder>;
127
143
  processedAt: import("drizzle-orm/pg-core").PgTimestampBuilder;
@@ -180,7 +196,7 @@ export declare const mqJobs: <JobName extends string = string, Queue extends str
180
196
  declare const attemptsColumns: (jobs: MqJobsTable) => {
181
197
  jobId: import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, JobStore.JobId>;
182
198
  attempt: import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgIntegerBuilder>;
183
- outcome: import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, "cancelled" | "completed" | "failed" | "retried" | "stalled">;
199
+ outcome: import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, "cancelled" | "completed" | "failed" | "fanned-out" | "retried" | "stalled">;
184
200
  startedAt: import("drizzle-orm/pg-core").PgTimestampBuilder;
185
201
  finishedAt: import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTimestampBuilder>;
186
202
  exit: import("drizzle-orm/pg-core").PgJsonbBuilder;
@@ -225,11 +241,11 @@ export declare const mqJobAttempts: (jobs: MqJobsTable, tableName?: string, opti
225
241
  identity: undefined;
226
242
  generated: undefined;
227
243
  }>;
228
- outcome: import("drizzle-orm/pg-core").PgBuildColumn<string, import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, "cancelled" | "completed" | "failed" | "retried" | "stalled">, {
244
+ outcome: import("drizzle-orm/pg-core").PgBuildColumn<string, import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, "cancelled" | "completed" | "failed" | "fanned-out" | "retried" | "stalled">, {
229
245
  name: string;
230
246
  tableName: string;
231
247
  dataType: "string";
232
- data: "cancelled" | "completed" | "failed" | "retried" | "stalled";
248
+ data: "cancelled" | "completed" | "failed" | "fanned-out" | "retried" | "stalled";
233
249
  driverParam: string;
234
250
  notNull: true;
235
251
  hasDefault: false;
@@ -302,6 +318,8 @@ declare const schedulesColumns: <JobName extends string, Queue extends string>()
302
318
  backoff: import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").PgJsonbBuilder, JobStore.BackoffPolicy>;
303
319
  keep: import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").PgJsonbBuilder, JobStore.KeepPolicy>;
304
320
  timeoutMs: import("drizzle-orm/pg-core").PgBigInt53Builder;
321
+ /** Ownership label for declarative reconciliation; NULL = never pruned. */
322
+ group: import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>;
305
323
  nextRunAt: import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTimestampBuilder>;
306
324
  };
307
325
  /**
@@ -511,6 +529,21 @@ export declare const mqSchedules: <JobName extends string = string, Queue extend
511
529
  identity: undefined;
512
530
  generated: undefined;
513
531
  }>;
532
+ group: import("drizzle-orm/pg-core").PgBuildColumn<string, import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>, {
533
+ name: string;
534
+ tableName: string;
535
+ dataType: "string";
536
+ data: string;
537
+ driverParam: string;
538
+ notNull: false;
539
+ hasDefault: false;
540
+ isPrimaryKey: false;
541
+ isAutoincrement: false;
542
+ hasRuntimeDefault: false;
543
+ enumValues: undefined;
544
+ identity: undefined;
545
+ generated: undefined;
546
+ }>;
514
547
  nextRunAt: import("drizzle-orm/pg-core").PgBuildColumn<string, import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTimestampBuilder>, {
515
548
  name: string;
516
549
  tableName: string;
@@ -608,6 +641,272 @@ export declare const mqDedupe: <JobName extends string = string>(tableName?: str
608
641
  };
609
642
  dialect: 'pg';
610
643
  }>;
644
+ declare const flowChildrenColumns: () => {
645
+ /** The parent (flow) job's id in this store. */
646
+ flowId: import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, JobStore.JobId>;
647
+ /** Unique within the flow (the idempotency mechanism). */
648
+ childKey: import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>;
649
+ /** The child job's name (projection of `spec.name` for dashboards). */
650
+ name: import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>;
651
+ /** The CHILD store's context-key string (children may live elsewhere). */
652
+ storeKey: import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>;
653
+ /** The FULL `EnqueueRequest`, so the sweeper can re-enqueue from storage. */
654
+ spec: import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgJsonbBuilder>, JobStore.EnqueueRequest>;
655
+ status: import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, "cancelled" | "completed" | "failed" | "pending">;
656
+ /** The child's schema-encoded exit; NULL for store-side failures. */
657
+ exit: import("drizzle-orm/pg-core").PgJsonbBuilder;
658
+ failedReason: import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>;
659
+ /** True once no cancel needs delivering into the child's store. */
660
+ cascaded: import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgBooleanBuilder>;
661
+ pendingSince: import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTimestampBuilder>;
662
+ };
663
+ /**
664
+ * Flow dependency rows (one per fan-out child; see `JobStore.FlowChildRecord`).
665
+ * Lives next to the PARENT store's jobs table.
666
+ *
667
+ * @since 0.6.0
668
+ */
669
+ export declare const mqFlowChildren: (tableName?: string, options?: MqTableOptions<ReturnType<typeof flowChildrenColumns>>) => import("drizzle-orm/pg-core").PgTableWithColumns<{
670
+ name: string;
671
+ schema: undefined;
672
+ columns: {
673
+ flowId: import("drizzle-orm/pg-core").PgBuildColumn<string, import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, JobStore.JobId>, {
674
+ name: string;
675
+ tableName: string;
676
+ dataType: "string";
677
+ data: JobStore.JobId;
678
+ driverParam: string;
679
+ notNull: true;
680
+ hasDefault: false;
681
+ isPrimaryKey: false;
682
+ isAutoincrement: false;
683
+ hasRuntimeDefault: false;
684
+ enumValues: undefined;
685
+ identity: undefined;
686
+ generated: undefined;
687
+ }>;
688
+ childKey: import("drizzle-orm/pg-core").PgBuildColumn<string, import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, {
689
+ name: string;
690
+ tableName: string;
691
+ dataType: "string";
692
+ data: string;
693
+ driverParam: string;
694
+ notNull: true;
695
+ hasDefault: false;
696
+ isPrimaryKey: false;
697
+ isAutoincrement: false;
698
+ hasRuntimeDefault: false;
699
+ enumValues: undefined;
700
+ identity: undefined;
701
+ generated: undefined;
702
+ }>;
703
+ name: import("drizzle-orm/pg-core").PgBuildColumn<string, import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, {
704
+ name: string;
705
+ tableName: string;
706
+ dataType: "string";
707
+ data: string;
708
+ driverParam: string;
709
+ notNull: true;
710
+ hasDefault: false;
711
+ isPrimaryKey: false;
712
+ isAutoincrement: false;
713
+ hasRuntimeDefault: false;
714
+ enumValues: undefined;
715
+ identity: undefined;
716
+ generated: undefined;
717
+ }>;
718
+ storeKey: import("drizzle-orm/pg-core").PgBuildColumn<string, import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, {
719
+ name: string;
720
+ tableName: string;
721
+ dataType: "string";
722
+ data: string;
723
+ driverParam: string;
724
+ notNull: true;
725
+ hasDefault: false;
726
+ isPrimaryKey: false;
727
+ isAutoincrement: false;
728
+ hasRuntimeDefault: false;
729
+ enumValues: undefined;
730
+ identity: undefined;
731
+ generated: undefined;
732
+ }>;
733
+ spec: import("drizzle-orm/pg-core").PgBuildColumn<string, import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgJsonbBuilder>, JobStore.EnqueueRequest>, {
734
+ name: string;
735
+ tableName: string;
736
+ dataType: "object json";
737
+ data: JobStore.EnqueueRequest;
738
+ driverParam: unknown;
739
+ notNull: true;
740
+ hasDefault: false;
741
+ isPrimaryKey: false;
742
+ isAutoincrement: false;
743
+ hasRuntimeDefault: false;
744
+ enumValues: undefined;
745
+ identity: undefined;
746
+ generated: undefined;
747
+ }>;
748
+ status: import("drizzle-orm/pg-core").PgBuildColumn<string, import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, "cancelled" | "completed" | "failed" | "pending">, {
749
+ name: string;
750
+ tableName: string;
751
+ dataType: "string";
752
+ data: "cancelled" | "completed" | "failed" | "pending";
753
+ driverParam: string;
754
+ notNull: true;
755
+ hasDefault: false;
756
+ isPrimaryKey: false;
757
+ isAutoincrement: false;
758
+ hasRuntimeDefault: false;
759
+ enumValues: undefined;
760
+ identity: undefined;
761
+ generated: undefined;
762
+ }>;
763
+ exit: import("drizzle-orm/pg-core").PgBuildColumn<string, import("drizzle-orm/pg-core").PgJsonbBuilder, {
764
+ name: string;
765
+ tableName: string;
766
+ dataType: "object json";
767
+ data: unknown;
768
+ driverParam: unknown;
769
+ notNull: false;
770
+ hasDefault: false;
771
+ isPrimaryKey: false;
772
+ isAutoincrement: false;
773
+ hasRuntimeDefault: false;
774
+ enumValues: undefined;
775
+ identity: undefined;
776
+ generated: undefined;
777
+ }>;
778
+ failedReason: import("drizzle-orm/pg-core").PgBuildColumn<string, import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>, {
779
+ name: string;
780
+ tableName: string;
781
+ dataType: "string";
782
+ data: string;
783
+ driverParam: string;
784
+ notNull: false;
785
+ hasDefault: false;
786
+ isPrimaryKey: false;
787
+ isAutoincrement: false;
788
+ hasRuntimeDefault: false;
789
+ enumValues: undefined;
790
+ identity: undefined;
791
+ generated: undefined;
792
+ }>;
793
+ cascaded: import("drizzle-orm/pg-core").PgBuildColumn<string, import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgBooleanBuilder>, {
794
+ name: string;
795
+ tableName: string;
796
+ dataType: "boolean";
797
+ data: boolean;
798
+ driverParam: boolean;
799
+ notNull: true;
800
+ hasDefault: false;
801
+ isPrimaryKey: false;
802
+ isAutoincrement: false;
803
+ hasRuntimeDefault: false;
804
+ enumValues: undefined;
805
+ identity: undefined;
806
+ generated: undefined;
807
+ }>;
808
+ pendingSince: import("drizzle-orm/pg-core").PgBuildColumn<string, import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTimestampBuilder>, {
809
+ name: string;
810
+ tableName: string;
811
+ dataType: "object date";
812
+ data: Date;
813
+ driverParam: string;
814
+ notNull: true;
815
+ hasDefault: false;
816
+ isPrimaryKey: false;
817
+ isAutoincrement: false;
818
+ hasRuntimeDefault: false;
819
+ enumValues: undefined;
820
+ identity: undefined;
821
+ generated: undefined;
822
+ }>;
823
+ };
824
+ dialect: 'pg';
825
+ }>;
826
+ declare const flowOutboxColumns: () => {
827
+ /** Store-assigned, oldest-first; exposed to callers as an opaque string. */
828
+ id: import("drizzle-orm/pg-core").SetIsPrimaryKey<import("drizzle-orm/pg-core").PgBigSerial53Builder>;
829
+ /** The flow definition's name, for relay routing. */
830
+ flowName: import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>;
831
+ /** The PARENT store's context-key string, for relay routing. */
832
+ parentStoreKey: import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>;
833
+ /** The full `FlowChildReport` to deliver into the parent store. */
834
+ report: import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgJsonbBuilder>, JobStore.FlowChildReport>;
835
+ };
836
+ /**
837
+ * Undelivered child-result reports (one per terminal transition of an
838
+ * envelope-carrying job; see `JobStore.OutboxEntry`). Lives next to the
839
+ * CHILD store's jobs table.
840
+ *
841
+ * @since 0.6.0
842
+ */
843
+ export declare const mqFlowOutbox: (tableName?: string, options?: MqTableOptions<ReturnType<typeof flowOutboxColumns>>) => import("drizzle-orm/pg-core").PgTableWithColumns<{
844
+ name: string;
845
+ schema: undefined;
846
+ columns: {
847
+ id: import("drizzle-orm/pg-core").PgBuildColumn<string, import("drizzle-orm/pg-core").SetIsPrimaryKey<import("drizzle-orm/pg-core").PgBigSerial53Builder>, {
848
+ name: string;
849
+ tableName: string;
850
+ dataType: "number int53";
851
+ data: number;
852
+ driverParam: number;
853
+ notNull: true;
854
+ hasDefault: true;
855
+ isPrimaryKey: false;
856
+ isAutoincrement: false;
857
+ hasRuntimeDefault: false;
858
+ enumValues: undefined;
859
+ identity: undefined;
860
+ generated: undefined;
861
+ }>;
862
+ flowName: import("drizzle-orm/pg-core").PgBuildColumn<string, import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, {
863
+ name: string;
864
+ tableName: string;
865
+ dataType: "string";
866
+ data: string;
867
+ driverParam: string;
868
+ notNull: true;
869
+ hasDefault: false;
870
+ isPrimaryKey: false;
871
+ isAutoincrement: false;
872
+ hasRuntimeDefault: false;
873
+ enumValues: undefined;
874
+ identity: undefined;
875
+ generated: undefined;
876
+ }>;
877
+ parentStoreKey: import("drizzle-orm/pg-core").PgBuildColumn<string, import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, {
878
+ name: string;
879
+ tableName: string;
880
+ dataType: "string";
881
+ data: string;
882
+ driverParam: string;
883
+ notNull: true;
884
+ hasDefault: false;
885
+ isPrimaryKey: false;
886
+ isAutoincrement: false;
887
+ hasRuntimeDefault: false;
888
+ enumValues: undefined;
889
+ identity: undefined;
890
+ generated: undefined;
891
+ }>;
892
+ report: import("drizzle-orm/pg-core").PgBuildColumn<string, import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgJsonbBuilder>, JobStore.FlowChildReport>, {
893
+ name: string;
894
+ tableName: string;
895
+ dataType: "object json";
896
+ data: JobStore.FlowChildReport;
897
+ driverParam: unknown;
898
+ notNull: true;
899
+ hasDefault: false;
900
+ isPrimaryKey: false;
901
+ isAutoincrement: false;
902
+ hasRuntimeDefault: false;
903
+ enumValues: undefined;
904
+ identity: undefined;
905
+ generated: undefined;
906
+ }>;
907
+ };
908
+ dialect: 'pg';
909
+ }>;
611
910
  declare const queueControlColumns: <Queue extends string>() => {
612
911
  queue: import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").SetIsPrimaryKey<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, Queue>;
613
912
  paused: import("drizzle-orm/pg-core").SetHasDefault<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgBooleanBuilder>>;
@@ -674,5 +973,13 @@ export type MqQueueControlTable = ReturnType<typeof mqQueueControl<any>>;
674
973
  * @since 0.3.0
675
974
  */
676
975
  export type MqDedupeTable = ReturnType<typeof mqDedupe<any>>;
976
+ /**
977
+ * @since 0.6.0
978
+ */
979
+ export type MqFlowChildrenTable = ReturnType<typeof mqFlowChildren>;
980
+ /**
981
+ * @since 0.6.0
982
+ */
983
+ export type MqFlowOutboxTable = ReturnType<typeof mqFlowOutbox>;
677
984
  export {};
678
985
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/drizzle-postgres/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/drizzle-postgres/schema.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { sql } from "drizzle-orm";
2
- import { bigint, boolean, index, integer, jsonb, pgTable, primaryKey, text, timestamp } from "drizzle-orm/pg-core";
2
+ import { bigint, bigserial, boolean, index, integer, jsonb, pgTable, primaryKey, text, timestamp } from "drizzle-orm/pg-core";
3
3
  const jobsColumns = () => ({
4
4
  id: text("id").primaryKey().$type(),
5
5
  name: text("name").notNull().$type(),
@@ -19,6 +19,14 @@ const jobsColumns = () => ({
19
19
  cancelRequested: boolean("cancel_requested").notNull().default(false),
20
20
  dedupeKey: text("dedupe_key"),
21
21
  trace: jsonb("trace").$type(),
22
+ /** Flow-parent link on child jobs (opaque envelope, like `trace`). */
23
+ parent: jsonb("parent").$type(),
24
+ /** Flow bookkeeping: NULL together until a FanOut ack lands the manifest. */
25
+ flowFailFast: boolean("flow_fail_fast"),
26
+ flowPending: integer("flow_pending"),
27
+ flowCompleted: integer("flow_completed"),
28
+ flowFailed: integer("flow_failed"),
29
+ flowCancelled: integer("flow_cancelled"),
22
30
  runAt: timestamp("run_at", { withTimezone: true, mode: "date" }).notNull(),
23
31
  enqueuedAt: timestamp("enqueued_at", { withTimezone: true, mode: "date" }).notNull(),
24
32
  processedAt: timestamp("processed_at", { withTimezone: true, mode: "date" }),
@@ -111,6 +119,8 @@ const schedulesColumns = () => ({
111
119
  backoff: jsonb("backoff").$type(),
112
120
  keep: jsonb("keep").$type(),
113
121
  timeoutMs: bigint("timeout_ms", { mode: "number" }),
122
+ /** Ownership label for declarative reconciliation; NULL = never pruned. */
123
+ group: text("group_name"),
114
124
  nextRunAt: timestamp("next_run_at", { withTimezone: true, mode: "date" }).notNull()
115
125
  });
116
126
  /**
@@ -141,6 +151,63 @@ export const mqDedupe = (tableName = "effect_mq_dedupe", options) => pgTable(tab
141
151
  primaryKey({ columns: [table.name, table.key] }),
142
152
  ...options?.extraConfig?.(table) ?? []
143
153
  ]);
154
+ const flowChildrenColumns = () => ({
155
+ /** The parent (flow) job's id in this store. */
156
+ flowId: text("flow_id").notNull().$type(),
157
+ /** Unique within the flow (the idempotency mechanism). */
158
+ childKey: text("child_key").notNull(),
159
+ /** The child job's name (projection of `spec.name` for dashboards). */
160
+ name: text("name").notNull(),
161
+ /** The CHILD store's context-key string (children may live elsewhere). */
162
+ storeKey: text("store_key").notNull(),
163
+ /** The FULL `EnqueueRequest`, so the sweeper can re-enqueue from storage. */
164
+ spec: jsonb("spec").notNull().$type(),
165
+ status: text("status").notNull().$type(),
166
+ /** The child's schema-encoded exit; NULL for store-side failures. */
167
+ exit: jsonb("exit"),
168
+ failedReason: text("failed_reason"),
169
+ /** True once no cancel needs delivering into the child's store. */
170
+ cascaded: boolean("cascaded").notNull(),
171
+ pendingSince: timestamp("pending_since", { withTimezone: true, mode: "date" }).notNull()
172
+ });
173
+ /**
174
+ * Flow dependency rows (one per fan-out child; see `JobStore.FlowChildRecord`).
175
+ * Lives next to the PARENT store's jobs table.
176
+ *
177
+ * @since 0.6.0
178
+ */
179
+ export const mqFlowChildren = (tableName = "effect_mq_flow_children", options) => pgTable(tableName, flowChildrenColumns(), (table) => [
180
+ primaryKey({ columns: [table.flowId, table.childKey] }),
181
+ // flowSweepWork reconcile: pending rows older than the threshold.
182
+ index(`${tableName}_pending_idx`)
183
+ .on(table.pendingSince)
184
+ .where(sql `${table.status} = 'pending'`),
185
+ // flowSweepWork cascade: cancelled rows not yet delivered.
186
+ index(`${tableName}_cascade_idx`)
187
+ .on(table.flowId)
188
+ .where(sql `${table.status} = 'cancelled' AND NOT ${table.cascaded}`),
189
+ ...options?.extraConfig?.(table) ?? []
190
+ ]);
191
+ const flowOutboxColumns = () => ({
192
+ /** Store-assigned, oldest-first; exposed to callers as an opaque string. */
193
+ id: bigserial("id", { mode: "number" }).primaryKey(),
194
+ /** The flow definition's name, for relay routing. */
195
+ flowName: text("flow_name").notNull(),
196
+ /** The PARENT store's context-key string, for relay routing. */
197
+ parentStoreKey: text("parent_store_key").notNull(),
198
+ /** The full `FlowChildReport` to deliver into the parent store. */
199
+ report: jsonb("report").notNull().$type()
200
+ });
201
+ /**
202
+ * Undelivered child-result reports (one per terminal transition of an
203
+ * envelope-carrying job; see `JobStore.OutboxEntry`). Lives next to the
204
+ * CHILD store's jobs table.
205
+ *
206
+ * @since 0.6.0
207
+ */
208
+ export const mqFlowOutbox = (tableName = "effect_mq_flow_outbox", options) => pgTable(tableName, flowOutboxColumns(), (table) => [
209
+ ...options?.extraConfig?.(table) ?? []
210
+ ]);
144
211
  const queueControlColumns = () => ({
145
212
  queue: text("queue").primaryKey().$type(),
146
213
  paused: boolean("paused").notNull().default(false)
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/drizzle-postgres/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/drizzle-postgres/schema.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -3,12 +3,26 @@
3
3
  *
4
4
  * @since 0.1.0
5
5
  */
6
+ /**
7
+ * Cross-store parent-child flows: `Flow.make`, `Flow.children`, the
8
+ * two-phase `fanOut`/`collect` handler.
9
+ *
10
+ * @since 0.6.0
11
+ */
12
+ export * as Flow from "./Flow.ts";
6
13
  /**
7
14
  * Schema-first job definitions: `Job.make`, `enqueue`, `toLayer`.
8
15
  *
9
16
  * @since 0.1.0
10
17
  */
11
18
  export * as Job from "./Job.ts";
19
+ /**
20
+ * Declarative schedule reconciliation: declare a service's full schedule
21
+ * set as a layer; startup upserts it and detects deletion drift.
22
+ *
23
+ * @since 0.5.0
24
+ */
25
+ export * as JobSchedules from "./JobSchedules.ts";
12
26
  /**
13
27
  * The storage seam: the `JobStore` service, job records and typed errors.
14
28
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;GAIG;AACH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAE/B;;;;GAIG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;;;GAIG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAErD;;;;;GAKG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;;;GAIG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;GAKG;AACH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAEjC;;;;GAIG;AACH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAE/B;;;;;GAKG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;;;GAIG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;;;GAIG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAErD;;;;;GAKG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;;;GAIG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA"}
package/dist/index.js CHANGED
@@ -3,12 +3,26 @@
3
3
  *
4
4
  * @since 0.1.0
5
5
  */
6
+ /**
7
+ * Cross-store parent-child flows: `Flow.make`, `Flow.children`, the
8
+ * two-phase `fanOut`/`collect` handler.
9
+ *
10
+ * @since 0.6.0
11
+ */
12
+ export * as Flow from "./Flow.js";
6
13
  /**
7
14
  * Schema-first job definitions: `Job.make`, `enqueue`, `toLayer`.
8
15
  *
9
16
  * @since 0.1.0
10
17
  */
11
18
  export * as Job from "./Job.js";
19
+ /**
20
+ * Declarative schedule reconciliation: declare a service's full schedule
21
+ * set as a layer; startup upserts it and detects deletion drift.
22
+ *
23
+ * @since 0.5.0
24
+ */
25
+ export * as JobSchedules from "./JobSchedules.js";
12
26
  /**
13
27
  * The storage seam: the `JobStore` service, job records and typed errors.
14
28
  *
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;GAIG;AACH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAE/B;;;;GAIG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;;;GAIG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAErD;;;;;GAKG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;;;GAIG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;GAKG;AACH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAEjC;;;;GAIG;AACH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAE/B;;;;;GAKG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;;;GAIG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;;;GAIG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAErD;;;;;GAKG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;;;GAIG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"RedisJobStore.d.ts","sourceRoot":"","sources":["../../src/redis/RedisJobStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAS,KAAK,OAAO,EAAY,QAAQ,EAAE,MAAM,EAAQ,KAAK,EAA2B,KAAK,KAAK,EAAE,MAAM,QAAQ,CAAA;AAC1H,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAA;AACnD,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAA;AAG1C;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,yEAAyE;IACzE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACpC;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,eAAe,GAAG,SAAS,CAAA;IAC1D,gDAAgD;IAChD,QAAQ,CAAC,oBAAoB,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAA;IAC1D;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,WAAW,GAAG,SAAS,CAAA;CACxD;AAsFD;;;;;GAKG;AACH,eAAO,MAAM,IAAI,aACL,oBAAoB,GAAG,SAAS,KACzC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAgrB/D,CAAA;AAEJ;;;;GAIG;AACH,eAAO,MAAM,KAAK,aACN,oBAAoB,GAAG,SAAS,KACzC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAmD,CAAA;AAEvG;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,SACvB,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,YACnC,oBAAoB,GAAG,SAAS,KACzC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAuC,CAAA"}
1
+ {"version":3,"file":"RedisJobStore.d.ts","sourceRoot":"","sources":["../../src/redis/RedisJobStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAS,KAAK,OAAO,EAAY,QAAQ,EAAE,MAAM,EAAQ,KAAK,EAA2B,KAAK,KAAK,EAAE,MAAM,QAAQ,CAAA;AAC1H,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAA;AACnD,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAA;AAG1C;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,yEAAyE;IACzE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACpC;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,eAAe,GAAG,SAAS,CAAA;IAC1D,gDAAgD;IAChD,QAAQ,CAAC,oBAAoB,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAA;IAC1D;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,WAAW,GAAG,SAAS,CAAA;CACxD;AAwJD;;;;;GAKG;AACH,eAAO,MAAM,IAAI,aACL,oBAAoB,GAAG,SAAS,KACzC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAy4B/D,CAAA;AAEJ;;;;GAIG;AACH,eAAO,MAAM,KAAK,aACN,oBAAoB,GAAG,SAAS,KACzC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAmD,CAAA;AAEvG;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,SACvB,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,YACnC,oBAAoB,GAAG,SAAS,KACzC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAuC,CAAA"}