@effect/cluster 0.46.2 → 0.46.4
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/cjs/EntityProxy.js +1 -1
- package/dist/cjs/EntityProxy.js.map +1 -1
- package/dist/cjs/EntityProxyServer.js +12 -2
- package/dist/cjs/EntityProxyServer.js.map +1 -1
- package/dist/cjs/SqlMessageStorage.js +273 -236
- package/dist/cjs/SqlMessageStorage.js.map +1 -1
- package/dist/dts/EntityProxy.d.ts.map +1 -1
- package/dist/dts/EntityProxyServer.d.ts.map +1 -1
- package/dist/dts/SqlMessageStorage.d.ts +3 -7
- package/dist/dts/SqlMessageStorage.d.ts.map +1 -1
- package/dist/esm/EntityProxy.js +1 -1
- package/dist/esm/EntityProxy.js.map +1 -1
- package/dist/esm/EntityProxyServer.js +12 -2
- package/dist/esm/EntityProxyServer.js.map +1 -1
- package/dist/esm/SqlMessageStorage.js +273 -236
- package/dist/esm/SqlMessageStorage.js.map +1 -1
- package/package.json +5 -5
- package/src/EntityProxy.ts +4 -1
- package/src/EntityProxyServer.ts +23 -2
- package/src/SqlMessageStorage.ts +315 -267
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @since 1.0.0
|
|
3
3
|
*/
|
|
4
|
+
import * as Migrator from "@effect/sql/Migrator";
|
|
4
5
|
import * as SqlClient from "@effect/sql/SqlClient";
|
|
5
6
|
import * as Arr from "effect/Array";
|
|
6
7
|
import * as Effect from "effect/Effect";
|
|
@@ -21,248 +22,16 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
21
22
|
const sql = (yield* SqlClient.SqlClient).withoutTransforms();
|
|
22
23
|
const prefix = options?.prefix ?? "cluster";
|
|
23
24
|
const table = name => `${prefix}_${name}`;
|
|
25
|
+
yield* Effect.orDie(Migrator.make({})({
|
|
26
|
+
loader: migrations(options),
|
|
27
|
+
table: table("migrations")
|
|
28
|
+
}));
|
|
24
29
|
const messageKindAckChunk = sql.literal(String(messageKind.AckChunk));
|
|
25
30
|
const replyKindWithExit = sql.literal(String(replyKind.WithExit));
|
|
26
31
|
const messagesTable = table("messages");
|
|
27
32
|
const messagesTableSql = sql(messagesTable);
|
|
28
33
|
const repliesTable = table("replies");
|
|
29
34
|
const repliesTableSql = sql(repliesTable);
|
|
30
|
-
yield* sql.onDialectOrElse({
|
|
31
|
-
mssql: () => sql`
|
|
32
|
-
IF OBJECT_ID(N'${messagesTableSql}', N'U') IS NULL
|
|
33
|
-
CREATE TABLE ${messagesTableSql} (
|
|
34
|
-
id BIGINT PRIMARY KEY,
|
|
35
|
-
rowid BIGINT IDENTITY(1,1),
|
|
36
|
-
message_id VARCHAR(255),
|
|
37
|
-
shard_id VARCHAR(50) NOT NULL,
|
|
38
|
-
entity_type VARCHAR(50) NOT NULL,
|
|
39
|
-
entity_id VARCHAR(255) NOT NULL,
|
|
40
|
-
kind INT NOT NULL,
|
|
41
|
-
tag VARCHAR(50),
|
|
42
|
-
payload TEXT,
|
|
43
|
-
headers TEXT,
|
|
44
|
-
trace_id VARCHAR(32),
|
|
45
|
-
span_id VARCHAR(16),
|
|
46
|
-
sampled BIT,
|
|
47
|
-
processed BIT NOT NULL DEFAULT 0,
|
|
48
|
-
request_id BIGINT NOT NULL,
|
|
49
|
-
reply_id BIGINT,
|
|
50
|
-
last_reply_id BIGINT,
|
|
51
|
-
last_read DATETIME,
|
|
52
|
-
deliver_at BIGINT,
|
|
53
|
-
UNIQUE (message_id),
|
|
54
|
-
FOREIGN KEY (request_id) REFERENCES ${messagesTableSql} (id) ON DELETE CASCADE
|
|
55
|
-
)
|
|
56
|
-
`,
|
|
57
|
-
mysql: () => sql`
|
|
58
|
-
CREATE TABLE IF NOT EXISTS ${messagesTableSql} (
|
|
59
|
-
id BIGINT NOT NULL,
|
|
60
|
-
rowid BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
61
|
-
message_id VARCHAR(255),
|
|
62
|
-
shard_id VARCHAR(50) NOT NULL,
|
|
63
|
-
entity_type VARCHAR(50) NOT NULL,
|
|
64
|
-
entity_id VARCHAR(255) NOT NULL,
|
|
65
|
-
kind INT NOT NULL,
|
|
66
|
-
tag VARCHAR(50),
|
|
67
|
-
payload TEXT,
|
|
68
|
-
headers TEXT,
|
|
69
|
-
trace_id VARCHAR(32),
|
|
70
|
-
span_id VARCHAR(16),
|
|
71
|
-
sampled BOOLEAN,
|
|
72
|
-
processed BOOLEAN NOT NULL DEFAULT FALSE,
|
|
73
|
-
request_id BIGINT NOT NULL,
|
|
74
|
-
reply_id BIGINT,
|
|
75
|
-
last_reply_id BIGINT,
|
|
76
|
-
last_read DATETIME,
|
|
77
|
-
deliver_at BIGINT,
|
|
78
|
-
UNIQUE (id),
|
|
79
|
-
UNIQUE (message_id),
|
|
80
|
-
FOREIGN KEY (request_id) REFERENCES ${messagesTableSql} (id) ON DELETE CASCADE
|
|
81
|
-
)
|
|
82
|
-
`,
|
|
83
|
-
pg: () => sql`
|
|
84
|
-
CREATE TABLE IF NOT EXISTS ${messagesTableSql} (
|
|
85
|
-
id BIGINT PRIMARY KEY,
|
|
86
|
-
rowid BIGSERIAL,
|
|
87
|
-
message_id VARCHAR(255),
|
|
88
|
-
shard_id VARCHAR(50) NOT NULL,
|
|
89
|
-
entity_type VARCHAR(50) NOT NULL,
|
|
90
|
-
entity_id VARCHAR(255) NOT NULL,
|
|
91
|
-
kind INT NOT NULL,
|
|
92
|
-
tag VARCHAR(50),
|
|
93
|
-
payload TEXT,
|
|
94
|
-
headers TEXT,
|
|
95
|
-
trace_id VARCHAR(32),
|
|
96
|
-
span_id VARCHAR(16),
|
|
97
|
-
sampled BOOLEAN,
|
|
98
|
-
processed BOOLEAN NOT NULL DEFAULT FALSE,
|
|
99
|
-
request_id BIGINT NOT NULL,
|
|
100
|
-
reply_id BIGINT,
|
|
101
|
-
last_reply_id BIGINT,
|
|
102
|
-
last_read TIMESTAMP,
|
|
103
|
-
deliver_at BIGINT,
|
|
104
|
-
UNIQUE (message_id),
|
|
105
|
-
FOREIGN KEY (request_id) REFERENCES ${messagesTableSql} (id) ON DELETE CASCADE
|
|
106
|
-
)
|
|
107
|
-
`.pipe(Effect.ignore),
|
|
108
|
-
orElse: () =>
|
|
109
|
-
// sqlite
|
|
110
|
-
sql`
|
|
111
|
-
CREATE TABLE IF NOT EXISTS ${messagesTableSql} (
|
|
112
|
-
id INTEGER PRIMARY KEY,
|
|
113
|
-
message_id TEXT,
|
|
114
|
-
shard_id TEXT NOT NULL,
|
|
115
|
-
entity_type TEXT NOT NULL,
|
|
116
|
-
entity_id TEXT NOT NULL,
|
|
117
|
-
kind INTEGER NOT NULL,
|
|
118
|
-
tag TEXT,
|
|
119
|
-
payload TEXT,
|
|
120
|
-
headers TEXT,
|
|
121
|
-
trace_id TEXT,
|
|
122
|
-
span_id TEXT,
|
|
123
|
-
sampled BOOLEAN,
|
|
124
|
-
processed BOOLEAN NOT NULL DEFAULT FALSE,
|
|
125
|
-
request_id INTEGER NOT NULL,
|
|
126
|
-
reply_id INTEGER,
|
|
127
|
-
last_reply_id INTEGER,
|
|
128
|
-
last_read TEXT,
|
|
129
|
-
deliver_at INTEGER,
|
|
130
|
-
UNIQUE (message_id),
|
|
131
|
-
FOREIGN KEY (request_id) REFERENCES ${messagesTableSql} (id) ON DELETE CASCADE
|
|
132
|
-
)
|
|
133
|
-
`
|
|
134
|
-
});
|
|
135
|
-
// Add message indexes optimized for the specific query patterns
|
|
136
|
-
const shardLookupIndex = `${messagesTable}_shard_idx`;
|
|
137
|
-
const requestIdLookupIndex = `${messagesTable}_request_id_idx`;
|
|
138
|
-
yield* sql.onDialectOrElse({
|
|
139
|
-
mssql: () => sql`
|
|
140
|
-
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = ${shardLookupIndex})
|
|
141
|
-
CREATE INDEX ${sql(shardLookupIndex)}
|
|
142
|
-
ON ${messagesTableSql} (shard_id, processed, last_read, deliver_at);
|
|
143
|
-
|
|
144
|
-
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = ${requestIdLookupIndex})
|
|
145
|
-
CREATE INDEX ${sql(requestIdLookupIndex)}
|
|
146
|
-
ON ${messagesTableSql} (request_id);
|
|
147
|
-
`,
|
|
148
|
-
mysql: () => sql`
|
|
149
|
-
CREATE INDEX ${sql(shardLookupIndex)}
|
|
150
|
-
ON ${messagesTableSql} (shard_id, processed, last_read, deliver_at);
|
|
151
|
-
|
|
152
|
-
CREATE INDEX ${sql(requestIdLookupIndex)}
|
|
153
|
-
ON ${messagesTableSql} (request_id);
|
|
154
|
-
`.unprepared.pipe(Effect.ignore),
|
|
155
|
-
pg: () => sql`
|
|
156
|
-
CREATE INDEX IF NOT EXISTS ${sql(shardLookupIndex)}
|
|
157
|
-
ON ${messagesTableSql} (shard_id, processed, last_read, deliver_at);
|
|
158
|
-
|
|
159
|
-
CREATE INDEX IF NOT EXISTS ${sql(requestIdLookupIndex)}
|
|
160
|
-
ON ${messagesTableSql} (request_id);
|
|
161
|
-
`.pipe(Effect.tapDefect(error => Effect.annotateLogs(Effect.logDebug("Failed to create indexes", error), {
|
|
162
|
-
package: "@effect/cluster",
|
|
163
|
-
module: "SqlMessageStorage"
|
|
164
|
-
})), Effect.retry({
|
|
165
|
-
schedule: Schedule.spaced(1000)
|
|
166
|
-
})),
|
|
167
|
-
orElse: () =>
|
|
168
|
-
// sqlite
|
|
169
|
-
Effect.all([sql`
|
|
170
|
-
CREATE INDEX IF NOT EXISTS ${sql(shardLookupIndex)}
|
|
171
|
-
ON ${messagesTableSql} (shard_id, processed, last_read, deliver_at)
|
|
172
|
-
`, sql`
|
|
173
|
-
CREATE INDEX IF NOT EXISTS ${sql(requestIdLookupIndex)}
|
|
174
|
-
ON ${messagesTableSql} (request_id)
|
|
175
|
-
`]).pipe(sql.withTransaction)
|
|
176
|
-
});
|
|
177
|
-
yield* sql.onDialectOrElse({
|
|
178
|
-
mssql: () => sql`
|
|
179
|
-
IF OBJECT_ID(N'${repliesTableSql}', N'U') IS NULL
|
|
180
|
-
CREATE TABLE ${repliesTableSql} (
|
|
181
|
-
id BIGINT PRIMARY KEY,
|
|
182
|
-
rowid BIGINT IDENTITY(1,1),
|
|
183
|
-
kind INT,
|
|
184
|
-
request_id BIGINT NOT NULL,
|
|
185
|
-
payload TEXT NOT NULL,
|
|
186
|
-
sequence INT,
|
|
187
|
-
acked BIT NOT NULL DEFAULT 0,
|
|
188
|
-
CONSTRAINT ${sql(repliesTable + "_one_exit")} UNIQUE (request_id, kind),
|
|
189
|
-
CONSTRAINT ${sql(repliesTable + "_sequence")} UNIQUE (request_id, sequence),
|
|
190
|
-
FOREIGN KEY (request_id) REFERENCES ${messagesTableSql} (id) ON DELETE CASCADE
|
|
191
|
-
)
|
|
192
|
-
`,
|
|
193
|
-
mysql: () => sql`
|
|
194
|
-
CREATE TABLE IF NOT EXISTS ${repliesTableSql} (
|
|
195
|
-
id BIGINT NOT NULL,
|
|
196
|
-
rowid BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
197
|
-
kind INT,
|
|
198
|
-
request_id BIGINT NOT NULL,
|
|
199
|
-
payload TEXT NOT NULL,
|
|
200
|
-
sequence INT,
|
|
201
|
-
acked BOOLEAN NOT NULL DEFAULT FALSE,
|
|
202
|
-
UNIQUE (id),
|
|
203
|
-
UNIQUE (request_id, kind),
|
|
204
|
-
UNIQUE (request_id, sequence),
|
|
205
|
-
FOREIGN KEY (request_id) REFERENCES ${messagesTableSql} (id) ON DELETE CASCADE
|
|
206
|
-
)
|
|
207
|
-
`,
|
|
208
|
-
pg: () => sql`
|
|
209
|
-
CREATE TABLE IF NOT EXISTS ${repliesTableSql} (
|
|
210
|
-
id BIGINT PRIMARY KEY,
|
|
211
|
-
rowid BIGSERIAL,
|
|
212
|
-
kind INT,
|
|
213
|
-
request_id BIGINT NOT NULL,
|
|
214
|
-
payload TEXT NOT NULL,
|
|
215
|
-
sequence INT,
|
|
216
|
-
acked BOOLEAN NOT NULL DEFAULT FALSE,
|
|
217
|
-
UNIQUE (request_id, kind),
|
|
218
|
-
UNIQUE (request_id, sequence),
|
|
219
|
-
FOREIGN KEY (request_id) REFERENCES ${messagesTableSql} (id) ON DELETE CASCADE
|
|
220
|
-
)
|
|
221
|
-
`,
|
|
222
|
-
orElse: () =>
|
|
223
|
-
// sqlite
|
|
224
|
-
sql`
|
|
225
|
-
CREATE TABLE IF NOT EXISTS ${repliesTableSql} (
|
|
226
|
-
id INTEGER PRIMARY KEY,
|
|
227
|
-
kind INTEGER,
|
|
228
|
-
request_id INTEGER NOT NULL,
|
|
229
|
-
payload TEXT NOT NULL,
|
|
230
|
-
sequence INTEGER,
|
|
231
|
-
acked BOOLEAN NOT NULL DEFAULT FALSE,
|
|
232
|
-
UNIQUE (request_id, kind),
|
|
233
|
-
UNIQUE (request_id, sequence),
|
|
234
|
-
FOREIGN KEY (request_id) REFERENCES ${messagesTableSql} (id) ON DELETE CASCADE
|
|
235
|
-
)
|
|
236
|
-
`
|
|
237
|
-
});
|
|
238
|
-
// Add reply indexes optimized for request_id lookups
|
|
239
|
-
const replyLookupIndex = `${repliesTable}_request_lookup_idx`;
|
|
240
|
-
yield* sql.onDialectOrElse({
|
|
241
|
-
mssql: () => sql`
|
|
242
|
-
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = ${replyLookupIndex})
|
|
243
|
-
CREATE INDEX ${sql(replyLookupIndex)}
|
|
244
|
-
ON ${repliesTableSql} (request_id, kind, acked);
|
|
245
|
-
`,
|
|
246
|
-
mysql: () => sql`
|
|
247
|
-
CREATE INDEX ${sql(replyLookupIndex)}
|
|
248
|
-
ON ${repliesTableSql} (request_id, kind, acked);
|
|
249
|
-
`.unprepared.pipe(Effect.ignore),
|
|
250
|
-
pg: () => sql`
|
|
251
|
-
CREATE INDEX IF NOT EXISTS ${sql(replyLookupIndex)}
|
|
252
|
-
ON ${repliesTableSql} (request_id, kind, acked);
|
|
253
|
-
`.pipe(Effect.tapDefect(error => Effect.annotateLogs(Effect.logDebug("Failed to create indexes", error), {
|
|
254
|
-
package: "@effect/cluster",
|
|
255
|
-
module: "SqlMessageStorage"
|
|
256
|
-
})), Effect.retry({
|
|
257
|
-
schedule: Schedule.spaced(1000)
|
|
258
|
-
})),
|
|
259
|
-
orElse: () =>
|
|
260
|
-
// sqlite
|
|
261
|
-
sql`
|
|
262
|
-
CREATE INDEX IF NOT EXISTS ${sql(replyLookupIndex)}
|
|
263
|
-
ON ${repliesTableSql} (request_id, kind, acked);
|
|
264
|
-
`
|
|
265
|
-
});
|
|
266
35
|
const envelopeToRow = (envelope, message_id, deliver_at) => {
|
|
267
36
|
switch (envelope._tag) {
|
|
268
37
|
case "Request":
|
|
@@ -670,6 +439,274 @@ export const layerWith = options => Layer.scoped(MessageStorage.MessageStorage,
|
|
|
670
439
|
// -------------------------------------------------------------------------------------------------
|
|
671
440
|
// internal
|
|
672
441
|
// -------------------------------------------------------------------------------------------------
|
|
442
|
+
const migrations = options => {
|
|
443
|
+
const prefix = options?.prefix ?? "cluster";
|
|
444
|
+
const table = name => `${prefix}_${name}`;
|
|
445
|
+
const messagesTable = table("messages");
|
|
446
|
+
const repliesTable = table("replies");
|
|
447
|
+
return Migrator.fromRecord({
|
|
448
|
+
"0001_create_tables": Effect.gen(function* () {
|
|
449
|
+
const sql = (yield* SqlClient.SqlClient).withoutTransforms();
|
|
450
|
+
const messagesTableSql = sql(messagesTable);
|
|
451
|
+
const repliesTableSql = sql(repliesTable);
|
|
452
|
+
yield* sql.onDialectOrElse({
|
|
453
|
+
mssql: () => sql`
|
|
454
|
+
IF OBJECT_ID(N'${messagesTableSql}', N'U') IS NULL
|
|
455
|
+
CREATE TABLE ${messagesTableSql} (
|
|
456
|
+
id BIGINT PRIMARY KEY,
|
|
457
|
+
rowid BIGINT IDENTITY(1,1),
|
|
458
|
+
message_id VARCHAR(255),
|
|
459
|
+
shard_id VARCHAR(50) NOT NULL,
|
|
460
|
+
entity_type VARCHAR(150) NOT NULL,
|
|
461
|
+
entity_id VARCHAR(255) NOT NULL,
|
|
462
|
+
kind INT NOT NULL,
|
|
463
|
+
tag VARCHAR(50),
|
|
464
|
+
payload TEXT,
|
|
465
|
+
headers TEXT,
|
|
466
|
+
trace_id VARCHAR(32),
|
|
467
|
+
span_id VARCHAR(16),
|
|
468
|
+
sampled BIT,
|
|
469
|
+
processed BIT NOT NULL DEFAULT 0,
|
|
470
|
+
request_id BIGINT NOT NULL,
|
|
471
|
+
reply_id BIGINT,
|
|
472
|
+
last_reply_id BIGINT,
|
|
473
|
+
last_read DATETIME,
|
|
474
|
+
deliver_at BIGINT,
|
|
475
|
+
UNIQUE (message_id),
|
|
476
|
+
FOREIGN KEY (request_id) REFERENCES ${messagesTableSql} (id) ON DELETE CASCADE
|
|
477
|
+
)
|
|
478
|
+
`,
|
|
479
|
+
mysql: () => sql`
|
|
480
|
+
CREATE TABLE IF NOT EXISTS ${messagesTableSql} (
|
|
481
|
+
id BIGINT NOT NULL,
|
|
482
|
+
rowid BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
483
|
+
message_id VARCHAR(255),
|
|
484
|
+
shard_id VARCHAR(50) NOT NULL,
|
|
485
|
+
entity_type VARCHAR(150) NOT NULL,
|
|
486
|
+
entity_id VARCHAR(255) NOT NULL,
|
|
487
|
+
kind INT NOT NULL,
|
|
488
|
+
tag VARCHAR(50),
|
|
489
|
+
payload TEXT,
|
|
490
|
+
headers TEXT,
|
|
491
|
+
trace_id VARCHAR(32),
|
|
492
|
+
span_id VARCHAR(16),
|
|
493
|
+
sampled BOOLEAN,
|
|
494
|
+
processed BOOLEAN NOT NULL DEFAULT FALSE,
|
|
495
|
+
request_id BIGINT NOT NULL,
|
|
496
|
+
reply_id BIGINT,
|
|
497
|
+
last_reply_id BIGINT,
|
|
498
|
+
last_read DATETIME,
|
|
499
|
+
deliver_at BIGINT,
|
|
500
|
+
UNIQUE (id),
|
|
501
|
+
UNIQUE (message_id),
|
|
502
|
+
FOREIGN KEY (request_id) REFERENCES ${messagesTableSql} (id) ON DELETE CASCADE
|
|
503
|
+
)
|
|
504
|
+
`,
|
|
505
|
+
pg: () => sql`
|
|
506
|
+
CREATE TABLE IF NOT EXISTS ${messagesTableSql} (
|
|
507
|
+
id BIGINT PRIMARY KEY,
|
|
508
|
+
rowid BIGSERIAL,
|
|
509
|
+
message_id VARCHAR(255),
|
|
510
|
+
shard_id VARCHAR(50) NOT NULL,
|
|
511
|
+
entity_type VARCHAR(150) NOT NULL,
|
|
512
|
+
entity_id VARCHAR(255) NOT NULL,
|
|
513
|
+
kind INT NOT NULL,
|
|
514
|
+
tag VARCHAR(50),
|
|
515
|
+
payload TEXT,
|
|
516
|
+
headers TEXT,
|
|
517
|
+
trace_id VARCHAR(32),
|
|
518
|
+
span_id VARCHAR(16),
|
|
519
|
+
sampled BOOLEAN,
|
|
520
|
+
processed BOOLEAN NOT NULL DEFAULT FALSE,
|
|
521
|
+
request_id BIGINT NOT NULL,
|
|
522
|
+
reply_id BIGINT,
|
|
523
|
+
last_reply_id BIGINT,
|
|
524
|
+
last_read TIMESTAMP,
|
|
525
|
+
deliver_at BIGINT,
|
|
526
|
+
UNIQUE (message_id),
|
|
527
|
+
FOREIGN KEY (request_id) REFERENCES ${messagesTableSql} (id) ON DELETE CASCADE
|
|
528
|
+
)
|
|
529
|
+
`.pipe(Effect.ignore),
|
|
530
|
+
orElse: () =>
|
|
531
|
+
// sqlite
|
|
532
|
+
sql`
|
|
533
|
+
CREATE TABLE IF NOT EXISTS ${messagesTableSql} (
|
|
534
|
+
id INTEGER PRIMARY KEY,
|
|
535
|
+
message_id TEXT,
|
|
536
|
+
shard_id TEXT NOT NULL,
|
|
537
|
+
entity_type TEXT NOT NULL,
|
|
538
|
+
entity_id TEXT NOT NULL,
|
|
539
|
+
kind INTEGER NOT NULL,
|
|
540
|
+
tag TEXT,
|
|
541
|
+
payload TEXT,
|
|
542
|
+
headers TEXT,
|
|
543
|
+
trace_id TEXT,
|
|
544
|
+
span_id TEXT,
|
|
545
|
+
sampled BOOLEAN,
|
|
546
|
+
processed BOOLEAN NOT NULL DEFAULT FALSE,
|
|
547
|
+
request_id INTEGER NOT NULL,
|
|
548
|
+
reply_id INTEGER,
|
|
549
|
+
last_reply_id INTEGER,
|
|
550
|
+
last_read TEXT,
|
|
551
|
+
deliver_at INTEGER,
|
|
552
|
+
UNIQUE (message_id),
|
|
553
|
+
FOREIGN KEY (request_id) REFERENCES ${messagesTableSql} (id) ON DELETE CASCADE
|
|
554
|
+
)
|
|
555
|
+
`
|
|
556
|
+
});
|
|
557
|
+
// Add message indexes optimized for the specific query patterns
|
|
558
|
+
const shardLookupIndex = `${messagesTable}_shard_idx`;
|
|
559
|
+
const requestIdLookupIndex = `${messagesTable}_request_id_idx`;
|
|
560
|
+
yield* sql.onDialectOrElse({
|
|
561
|
+
mssql: () => sql`
|
|
562
|
+
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = ${shardLookupIndex})
|
|
563
|
+
CREATE INDEX ${sql(shardLookupIndex)}
|
|
564
|
+
ON ${messagesTableSql} (shard_id, processed, last_read, deliver_at);
|
|
565
|
+
|
|
566
|
+
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = ${requestIdLookupIndex})
|
|
567
|
+
CREATE INDEX ${sql(requestIdLookupIndex)}
|
|
568
|
+
ON ${messagesTableSql} (request_id);
|
|
569
|
+
`,
|
|
570
|
+
mysql: () => sql`
|
|
571
|
+
CREATE INDEX ${sql(shardLookupIndex)}
|
|
572
|
+
ON ${messagesTableSql} (shard_id, processed, last_read, deliver_at);
|
|
573
|
+
|
|
574
|
+
CREATE INDEX ${sql(requestIdLookupIndex)}
|
|
575
|
+
ON ${messagesTableSql} (request_id);
|
|
576
|
+
`.unprepared.pipe(Effect.ignore),
|
|
577
|
+
pg: () => sql`
|
|
578
|
+
CREATE INDEX IF NOT EXISTS ${sql(shardLookupIndex)}
|
|
579
|
+
ON ${messagesTableSql} (shard_id, processed, last_read, deliver_at);
|
|
580
|
+
|
|
581
|
+
CREATE INDEX IF NOT EXISTS ${sql(requestIdLookupIndex)}
|
|
582
|
+
ON ${messagesTableSql} (request_id);
|
|
583
|
+
`.pipe(Effect.tapDefect(error => Effect.annotateLogs(Effect.logDebug("Failed to create indexes", error), {
|
|
584
|
+
package: "@effect/cluster",
|
|
585
|
+
module: "SqlMessageStorage"
|
|
586
|
+
})), Effect.retry({
|
|
587
|
+
schedule: Schedule.spaced(1000)
|
|
588
|
+
})),
|
|
589
|
+
orElse: () =>
|
|
590
|
+
// sqlite
|
|
591
|
+
Effect.all([sql`
|
|
592
|
+
CREATE INDEX IF NOT EXISTS ${sql(shardLookupIndex)}
|
|
593
|
+
ON ${messagesTableSql} (shard_id, processed, last_read, deliver_at)
|
|
594
|
+
`, sql`
|
|
595
|
+
CREATE INDEX IF NOT EXISTS ${sql(requestIdLookupIndex)}
|
|
596
|
+
ON ${messagesTableSql} (request_id)
|
|
597
|
+
`]).pipe(sql.withTransaction)
|
|
598
|
+
});
|
|
599
|
+
yield* sql.onDialectOrElse({
|
|
600
|
+
mssql: () => sql`
|
|
601
|
+
IF OBJECT_ID(N'${repliesTableSql}', N'U') IS NULL
|
|
602
|
+
CREATE TABLE ${repliesTableSql} (
|
|
603
|
+
id BIGINT PRIMARY KEY,
|
|
604
|
+
rowid BIGINT IDENTITY(1,1),
|
|
605
|
+
kind INT,
|
|
606
|
+
request_id BIGINT NOT NULL,
|
|
607
|
+
payload TEXT NOT NULL,
|
|
608
|
+
sequence INT,
|
|
609
|
+
acked BIT NOT NULL DEFAULT 0,
|
|
610
|
+
CONSTRAINT ${sql(repliesTable + "_one_exit")} UNIQUE (request_id, kind),
|
|
611
|
+
CONSTRAINT ${sql(repliesTable + "_sequence")} UNIQUE (request_id, sequence),
|
|
612
|
+
FOREIGN KEY (request_id) REFERENCES ${messagesTableSql} (id) ON DELETE CASCADE
|
|
613
|
+
)
|
|
614
|
+
`,
|
|
615
|
+
mysql: () => sql`
|
|
616
|
+
CREATE TABLE IF NOT EXISTS ${repliesTableSql} (
|
|
617
|
+
id BIGINT NOT NULL,
|
|
618
|
+
rowid BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
619
|
+
kind INT,
|
|
620
|
+
request_id BIGINT NOT NULL,
|
|
621
|
+
payload TEXT NOT NULL,
|
|
622
|
+
sequence INT,
|
|
623
|
+
acked BOOLEAN NOT NULL DEFAULT FALSE,
|
|
624
|
+
UNIQUE (id),
|
|
625
|
+
UNIQUE (request_id, kind),
|
|
626
|
+
UNIQUE (request_id, sequence),
|
|
627
|
+
FOREIGN KEY (request_id) REFERENCES ${messagesTableSql} (id) ON DELETE CASCADE
|
|
628
|
+
)
|
|
629
|
+
`,
|
|
630
|
+
pg: () => sql`
|
|
631
|
+
CREATE TABLE IF NOT EXISTS ${repliesTableSql} (
|
|
632
|
+
id BIGINT PRIMARY KEY,
|
|
633
|
+
rowid BIGSERIAL,
|
|
634
|
+
kind INT,
|
|
635
|
+
request_id BIGINT NOT NULL,
|
|
636
|
+
payload TEXT NOT NULL,
|
|
637
|
+
sequence INT,
|
|
638
|
+
acked BOOLEAN NOT NULL DEFAULT FALSE,
|
|
639
|
+
UNIQUE (request_id, kind),
|
|
640
|
+
UNIQUE (request_id, sequence),
|
|
641
|
+
FOREIGN KEY (request_id) REFERENCES ${messagesTableSql} (id) ON DELETE CASCADE
|
|
642
|
+
)
|
|
643
|
+
`,
|
|
644
|
+
orElse: () =>
|
|
645
|
+
// sqlite
|
|
646
|
+
sql`
|
|
647
|
+
CREATE TABLE IF NOT EXISTS ${repliesTableSql} (
|
|
648
|
+
id INTEGER PRIMARY KEY,
|
|
649
|
+
kind INTEGER,
|
|
650
|
+
request_id INTEGER NOT NULL,
|
|
651
|
+
payload TEXT NOT NULL,
|
|
652
|
+
sequence INTEGER,
|
|
653
|
+
acked BOOLEAN NOT NULL DEFAULT FALSE,
|
|
654
|
+
UNIQUE (request_id, kind),
|
|
655
|
+
UNIQUE (request_id, sequence),
|
|
656
|
+
FOREIGN KEY (request_id) REFERENCES ${messagesTableSql} (id) ON DELETE CASCADE
|
|
657
|
+
)
|
|
658
|
+
`
|
|
659
|
+
});
|
|
660
|
+
// Add reply indexes optimized for request_id lookups
|
|
661
|
+
const replyLookupIndex = `${repliesTable}_request_lookup_idx`;
|
|
662
|
+
yield* sql.onDialectOrElse({
|
|
663
|
+
mssql: () => sql`
|
|
664
|
+
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = ${replyLookupIndex})
|
|
665
|
+
CREATE INDEX ${sql(replyLookupIndex)}
|
|
666
|
+
ON ${repliesTableSql} (request_id, kind, acked);
|
|
667
|
+
`,
|
|
668
|
+
mysql: () => sql`
|
|
669
|
+
CREATE INDEX ${sql(replyLookupIndex)}
|
|
670
|
+
ON ${repliesTableSql} (request_id, kind, acked);
|
|
671
|
+
`.unprepared.pipe(Effect.ignore),
|
|
672
|
+
pg: () => sql`
|
|
673
|
+
CREATE INDEX IF NOT EXISTS ${sql(replyLookupIndex)}
|
|
674
|
+
ON ${repliesTableSql} (request_id, kind, acked);
|
|
675
|
+
`.pipe(Effect.tapDefect(error => Effect.annotateLogs(Effect.logDebug("Failed to create indexes", error), {
|
|
676
|
+
package: "@effect/cluster",
|
|
677
|
+
module: "SqlMessageStorage"
|
|
678
|
+
})), Effect.retry({
|
|
679
|
+
schedule: Schedule.spaced(1000)
|
|
680
|
+
})),
|
|
681
|
+
orElse: () =>
|
|
682
|
+
// sqlite
|
|
683
|
+
sql`
|
|
684
|
+
CREATE INDEX IF NOT EXISTS ${sql(replyLookupIndex)}
|
|
685
|
+
ON ${repliesTableSql} (request_id, kind, acked);
|
|
686
|
+
`
|
|
687
|
+
});
|
|
688
|
+
}),
|
|
689
|
+
"0002_entity_type_size": Effect.gen(function* () {
|
|
690
|
+
const sql = (yield* SqlClient.SqlClient).withoutTransforms();
|
|
691
|
+
const messagesTableSql = sql(messagesTable);
|
|
692
|
+
// resize entity_type to 150 characters
|
|
693
|
+
yield* sql.onDialectOrElse({
|
|
694
|
+
mssql: () => sql`
|
|
695
|
+
ALTER TABLE ${messagesTableSql} ALTER COLUMN entity_type VARCHAR(150) NOT NULL;
|
|
696
|
+
`,
|
|
697
|
+
mysql: () => sql`
|
|
698
|
+
ALTER TABLE ${messagesTableSql} MODIFY entity_type VARCHAR(150) NOT NULL;
|
|
699
|
+
`.unprepared.pipe(Effect.ignore),
|
|
700
|
+
pg: () => sql`
|
|
701
|
+
ALTER TABLE ${messagesTableSql} ALTER COLUMN entity_type TYPE VARCHAR(150);
|
|
702
|
+
`,
|
|
703
|
+
orElse: () =>
|
|
704
|
+
// sqlite
|
|
705
|
+
Effect.void
|
|
706
|
+
});
|
|
707
|
+
})
|
|
708
|
+
});
|
|
709
|
+
};
|
|
673
710
|
const messageKind = {
|
|
674
711
|
"Request": 0,
|
|
675
712
|
"AckChunk": 1,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqlMessageStorage.js","names":["SqlClient","Arr","Effect","Layer","Option","Schedule","PersistenceError","MessageStorage","SaveResultEncoded","ShardId","Snowflake","withTracerDisabled","withTracerEnabled","make","fnUntraced","options","sql","withoutTransforms","prefix","table","name","messageKindAckChunk","literal","String","messageKind","AckChunk","replyKindWithExit","replyKind","WithExit","messagesTable","messagesTableSql","repliesTable","repliesTableSql","onDialectOrElse","mssql","mysql","pg","pipe","ignore","orElse","shardLookupIndex","requestIdLookupIndex","unprepared","tapDefect","error","annotateLogs","logDebug","package","module","retry","schedule","spaced","all","withTransaction","replyLookupIndex","envelopeToRow","envelope","message_id","deliver_at","_tag","id","requestId","shard_id","toString","address","shardId","entity_type","entityType","entity_id","entityId","kind","Request","tag","payload","JSON","stringify","headers","trace_id","traceId","span_id","spanId","sampled","undefined","supportsBooleans","request_id","reply_id","replyId","Interrupt","replyToRow","reply","exit","values","sequence","sqlite","messageFromRow","row","Number","fromStringEncoded","parse","lastSentReply","reply_reply_id","some","reply_sequence","reply_payload","none","sqlFalse","sqlTrue","insertEnvelope","insert","times","map","rows","tap","fiveMinutesAgo","sqlNowString","sqlNow","wrapString","s","getUnprocessedMessages","shardIds","now","join","length","void","makeEncoded","saveEnvelope","deliverAt","primaryKey","suspend","as","andThen","Success","Duplicate","originalId","lastReceivedReply","reply_kind","provideService","SafeIntegers","refail","saveReply","update","asVoid","clearReplies","requestIdForPrimaryKey","fromNullable","repliesFor","requestIds","replyFromRow","repliesForUnfiltered","unprocessedMessages","messages","Array","ids","i","unprocessedMessagesById","idArr","from","resetAddress","clearAddress","resetShards","layer","scoped","provide","layerGenerator","layerWith"],"sources":["../../src/SqlMessageStorage.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"SqlMessageStorage.js","names":["Migrator","SqlClient","Arr","Effect","Layer","Option","Schedule","PersistenceError","MessageStorage","SaveResultEncoded","ShardId","Snowflake","withTracerDisabled","withTracerEnabled","make","fnUntraced","options","sql","withoutTransforms","prefix","table","name","orDie","loader","migrations","messageKindAckChunk","literal","String","messageKind","AckChunk","replyKindWithExit","replyKind","WithExit","messagesTable","messagesTableSql","repliesTable","repliesTableSql","envelopeToRow","envelope","message_id","deliver_at","_tag","id","requestId","shard_id","toString","address","shardId","entity_type","entityType","entity_id","entityId","kind","Request","tag","payload","JSON","stringify","headers","trace_id","traceId","span_id","spanId","sampled","undefined","supportsBooleans","request_id","reply_id","replyId","Interrupt","replyToRow","reply","exit","values","sequence","onDialectOrElse","mssql","sqlite","orElse","messageFromRow","row","Number","fromStringEncoded","parse","lastSentReply","reply_reply_id","some","reply_sequence","reply_payload","none","sqlFalse","sqlTrue","insertEnvelope","pg","insert","mysql","unprepared","pipe","withTransaction","retry","times","map","rows","tap","fiveMinutesAgo","sqlNowString","sqlNow","wrapString","s","getUnprocessedMessages","shardIds","now","join","length","void","makeEncoded","saveEnvelope","deliverAt","primaryKey","suspend","as","andThen","Success","Duplicate","originalId","lastReceivedReply","reply_kind","provideService","SafeIntegers","refail","saveReply","update","asVoid","clearReplies","requestIdForPrimaryKey","fromNullable","repliesFor","requestIds","replyFromRow","repliesForUnfiltered","unprocessedMessages","messages","Array","ids","i","unprocessedMessagesById","idArr","from","resetAddress","clearAddress","resetShards","layer","scoped","provide","layerGenerator","layerWith","fromRecord","gen","ignore","shardLookupIndex","requestIdLookupIndex","tapDefect","error","annotateLogs","logDebug","package","module","schedule","spaced","all","replyLookupIndex"],"sources":["../../src/SqlMessageStorage.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect/cluster",
|
|
3
|
-
"version": "0.46.
|
|
3
|
+
"version": "0.46.4",
|
|
4
4
|
"description": "Unified interfaces for common cluster-specific services",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -11,11 +11,11 @@
|
|
|
11
11
|
"sideEffects": [],
|
|
12
12
|
"homepage": "https://effect.website",
|
|
13
13
|
"peerDependencies": {
|
|
14
|
+
"@effect/rpc": "^0.68.3",
|
|
15
|
+
"@effect/sql": "^0.44.1",
|
|
14
16
|
"@effect/platform": "^0.90.0",
|
|
15
|
-
"@effect/
|
|
16
|
-
"
|
|
17
|
-
"@effect/sql": "^0.44.0",
|
|
18
|
-
"effect": "^3.17.3"
|
|
17
|
+
"@effect/workflow": "^0.8.3",
|
|
18
|
+
"effect": "^3.17.6"
|
|
19
19
|
},
|
|
20
20
|
"publishConfig": {
|
|
21
21
|
"provenance": true
|
package/src/EntityProxy.ts
CHANGED
|
@@ -172,7 +172,10 @@ export const toHttpApiGroup = <const Name extends string, Type extends string, R
|
|
|
172
172
|
.addSuccess(parentRpc.successSchema)
|
|
173
173
|
.addError(Schema.Union(parentRpc.errorSchema, ...clientErrors))
|
|
174
174
|
.annotateContext(parentRpc.annotations)
|
|
175
|
-
const endpointDiscard = HttpApiEndpoint.post(
|
|
175
|
+
const endpointDiscard = HttpApiEndpoint.post(
|
|
176
|
+
`${parentRpc._tag}Discard`,
|
|
177
|
+
`/${tagToPath(parentRpc._tag)}/:entityId/discard`
|
|
178
|
+
)
|
|
176
179
|
.setPath(entityIdPath)
|
|
177
180
|
.setPayload(parentRpc.payloadSchema)
|
|
178
181
|
.addError(Schema.Union(...clientErrors))
|