@reventlessdev/reventless-aws 3.0.0-alpha.192 → 3.0.0-alpha.194

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 (46) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/package.json +8 -8
  3. package/src/adapter/Counter/CounterHandler_DynamoDbStream.res +1 -0
  4. package/src/adapter/Counter/CounterHandler_DynamoDbStream.res.mjs +4 -1
  5. package/src/adapter/Postgres/PgChangeFeedRelay_Builder.res +1 -0
  6. package/src/adapter/Postgres/PgChangeFeedRelay_Builder.res.mjs +4 -1
  7. package/src/adapter/Postgres/PgMigration_Builder.res +1 -0
  8. package/src/adapter/Postgres/PgMigration_Builder.res.mjs +4 -1
  9. package/src/adapter/QueryDb/PgQueryResolver_Builder.res +1 -0
  10. package/src/adapter/QueryDb/PgQueryResolver_Builder.res.mjs +4 -1
  11. package/src/adapter/Runtime/AggregateRuntime_Builder_Micro.res +3 -0
  12. package/src/adapter/Runtime/AggregateRuntime_Builder_Micro.res.mjs +3 -3
  13. package/src/adapter/Runtime/AggregateRuntime_Builder_Micro_Async.res +3 -0
  14. package/src/adapter/Runtime/AggregateRuntime_Builder_Micro_Async.res.mjs +3 -3
  15. package/src/adapter/Runtime/AggregateRuntime_Builder_PerAggregate.res +1 -0
  16. package/src/adapter/Runtime/AggregateRuntime_Builder_PerAggregate.res.mjs +1 -1
  17. package/src/adapter/Runtime/AggregateRuntime_Builder_PerAggregate_Async.res +1 -0
  18. package/src/adapter/Runtime/AggregateRuntime_Builder_PerAggregate_Async.res.mjs +1 -1
  19. package/src/adapter/Runtime/AggregateRuntime_Builder_Single.res +1 -0
  20. package/src/adapter/Runtime/AggregateRuntime_Builder_Single.res.mjs +1 -1
  21. package/src/adapter/Runtime/AggregateRuntime_Builder_Single_Async.res +1 -0
  22. package/src/adapter/Runtime/AggregateRuntime_Builder_Single_Async.res.mjs +1 -1
  23. package/src/adapter/Runtime/AutomationSliceRuntime_Builder_Single.res +1 -0
  24. package/src/adapter/Runtime/AutomationSliceRuntime_Builder_Single.res.mjs +1 -1
  25. package/src/adapter/Runtime/EventCollectorRuntime_Builder_PerEventCollector.res +1 -0
  26. package/src/adapter/Runtime/EventCollectorRuntime_Builder_PerEventCollector.res.mjs +1 -1
  27. package/src/adapter/Runtime/EventCollectorRuntime_Builder_Single.res +1 -0
  28. package/src/adapter/Runtime/EventCollectorRuntime_Builder_Single.res.mjs +1 -1
  29. package/src/adapter/Runtime/ExtensionPointRuntime_Builder_PerExtensionPoint.res +1 -0
  30. package/src/adapter/Runtime/ExtensionPointRuntime_Builder_PerExtensionPoint.res.mjs +1 -1
  31. package/src/adapter/Runtime/RuntimeEnvironment_Lambda.res +13 -4
  32. package/src/adapter/Runtime/RuntimeEnvironment_Lambda.res.mjs +5 -2
  33. package/src/adapter/Runtime/SideEffectHandlerRuntime_Builder_Single.res +1 -0
  34. package/src/adapter/Runtime/SideEffectHandlerRuntime_Builder_Single.res.mjs +1 -1
  35. package/src/adapter/Runtime/StateChangeSliceRuntime_Builder_Single.res +1 -0
  36. package/src/adapter/Runtime/StateChangeSliceRuntime_Builder_Single.res.mjs +1 -1
  37. package/src/adapter/Runtime/StateViewSliceRuntime_Builder_Single.res +1 -0
  38. package/src/adapter/Runtime/StateViewSliceRuntime_Builder_Single.res.mjs +1 -1
  39. package/src/adapter/Runtime/TaskRuntime_Builder_PerBucket.res +1 -0
  40. package/src/adapter/Runtime/TaskRuntime_Builder_PerBucket.res.mjs +1 -1
  41. package/src/plugin/runtime/PluginExtensionPointRuntime_Builder.res +1 -0
  42. package/src/plugin/runtime/PluginExtensionPointRuntime_Builder.res.mjs +1 -1
  43. package/src/plugin/runtime/PluginRuntime_Builder.res +2 -0
  44. package/src/plugin/runtime/PluginRuntime_Builder.res.mjs +2 -2
  45. package/src/util/Util_DeadLetterQueue.res +11 -0
  46. package/src/util/Util_DeadLetterQueue.res.mjs +4 -0
package/CHANGELOG.md CHANGED
@@ -3,6 +3,21 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # 3.0.0-alpha.194 (2026-07-11)
7
+
8
+ ### Features
9
+
10
+ * **monitoring:** deploy-time Monitoring hook seam for provisioned execution units ([30f1c23](https://github.com/ReventlessDev/reventless-core/commit/30f1c23ba118805dae83af9115341f4aff6db92b))
11
+
12
+
13
+ # 3.0.0-alpha.193 (2026-07-10)
14
+
15
+ **Note:** Version bump only for package @reventlessdev/reventless-aws
16
+
17
+
18
+
19
+
20
+
6
21
  # 3.0.0-alpha.192 (2026-07-10)
7
22
 
8
23
  **Note:** Version bump only for package @reventlessdev/reventless-aws
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reventlessdev/reventless-aws",
3
- "version": "3.0.0-alpha.192",
3
+ "version": "3.0.0-alpha.194",
4
4
  "description": "AWS adapters for Reventless",
5
5
  "license": "Apache-2.0",
6
6
  "dependencies": {
@@ -9,16 +9,16 @@
9
9
  "sury": "11.0.0-alpha.4",
10
10
  "uuid": "^13.0.0",
11
11
  "@reventlessdev/rescript-aws-sdk": "2.2.0-alpha.20",
12
- "@reventlessdev/rescript-effect": "0.1.0-alpha.25",
13
12
  "@reventlessdev/rescript-jest": "1.0.0-alpha.6",
14
- "@reventlessdev/rescript-pulumi-aws": "2.4.0-alpha.47",
13
+ "@reventlessdev/rescript-pulumi-aws": "2.4.0-alpha.48",
14
+ "@reventlessdev/rescript-effect": "0.1.0-alpha.25",
15
15
  "@reventlessdev/rescript-pulumi-pulumi": "2.3.0-alpha.14",
16
+ "@reventlessdev/reventless-core": "3.0.0-alpha.154",
17
+ "@reventlessdev/reventless-infra": "3.0.0-alpha.95",
16
18
  "@reventlessdev/rescript-uuid": "1.1.0-alpha.14",
17
- "@reventlessdev/reventless-core": "3.0.0-alpha.152",
18
- "@reventlessdev/reventless-infra": "3.0.0-alpha.93",
19
- "@reventlessdev/reventless-interop": "3.0.0-alpha.24",
20
- "@reventlessdev/reventless-spec": "3.0.0-alpha.71",
21
- "@reventlessdev/reventless-postgres": "3.0.0-alpha.16"
19
+ "@reventlessdev/reventless-postgres": "3.0.0-alpha.18",
20
+ "@reventlessdev/reventless-spec": "3.0.0-alpha.73",
21
+ "@reventlessdev/reventless-interop": "3.0.0-alpha.24"
22
22
  },
23
23
  "devDependencies": {
24
24
  "rescript": "^12.3.0",
@@ -59,6 +59,7 @@ let make: ReventlessCore.Counter_Adapter.handlerMaker = (
59
59
 
60
60
  let runtime = RuntimeEnvironment_Lambda.makeFromCodeAsset(
61
61
  ~name,
62
+ ~unitKind=ReventlessCore.Monitoring.Other("Counter"),
62
63
  ~code,
63
64
  ~sourceCodeHash,
64
65
  ~envVars,
@@ -37,7 +37,10 @@ function make(name, referencesName, referencesDb, countsName, countsDb, param, s
37
37
  let componentOpts = {
38
38
  parent: componentOpts_parent
39
39
  };
40
- let runtime = RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset(name, match.code, match.sourceCodeHash, envVars, 1024, 30, undefined, undefined, undefined, undefined, undefined, componentOpts);
40
+ let runtime = RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset(name, {
41
+ TAG: "Other",
42
+ _0: "Counter"
43
+ }, match.code, match.sourceCodeHash, envVars, 1024, 30, undefined, undefined, undefined, undefined, undefined, componentOpts);
41
44
  let lambda = runtime.parts.lambda;
42
45
  let subscribe = (sourceName, source) => Util_EventSourceMapping$ReventlessAws.subscribe(undefined, lambda, name, sourceName, source, opts);
43
46
  subscribe(referencesName, referencesStream);
@@ -101,6 +101,7 @@ let make = (
101
101
 
102
102
  let runtime = RuntimeEnvironment_Lambda.makeFromCodeAsset(
103
103
  ~name,
104
+ ~unitKind=ReventlessCore.Monitoring.Other("ChangeFeed"),
104
105
  ~code,
105
106
  ~sourceCodeHash,
106
107
  ~envVars,
@@ -68,7 +68,10 @@ function make(name, logs, securityGroupId, subnetIds, intervalMinutesOpt, opts)
68
68
  subnetIds: subnetIds,
69
69
  securityGroupIds: [sgId]
70
70
  }));
71
- let runtime = RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset(name, match.code, match.sourceCodeHash, envVars, undefined, undefined, undefined, undefined, undefined, undefined, vpcConfig, opts);
71
+ let runtime = RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset(name, {
72
+ TAG: "Other",
73
+ _0: "ChangeFeed"
74
+ }, match.code, match.sourceCodeHash, envVars, undefined, undefined, undefined, undefined, undefined, undefined, vpcConfig, opts);
72
75
  let secretArns = logs.map(l => l.connectionConfig.apply(cc => cc.secretArn));
73
76
  let queueArns = logs.map(l => l.targetQueueArn);
74
77
  Pulumi.all([
@@ -53,6 +53,7 @@ let make = (
53
53
 
54
54
  let runtime = RuntimeEnvironment_Lambda.makeFromCodeAsset(
55
55
  ~name,
56
+ ~unitKind=ReventlessCore.Monitoring.Other("Migration"),
56
57
  ~code,
57
58
  ~sourceCodeHash,
58
59
  ~envVars,
@@ -21,7 +21,10 @@ function make(name, handlerConfig, secretArn, securityGroupId, subnetIds, opts)
21
21
  subnetIds: subnetIds,
22
22
  securityGroupIds: [sgId]
23
23
  }));
24
- let runtime = RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset(name, match.code, sourceCodeHash, envVars, undefined, undefined, undefined, undefined, undefined, undefined, vpcConfig, opts);
24
+ let runtime = RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset(name, {
25
+ TAG: "Other",
26
+ _0: "Migration"
27
+ }, match.code, sourceCodeHash, envVars, undefined, undefined, undefined, undefined, undefined, undefined, vpcConfig, opts);
25
28
  let rolePolicy = new (Aws.iam.RolePolicy)(name + `MigrationAccess`, {
26
29
  policy: secretArn.apply(arn => PolicyDocument$PulumiAws.toJsonString(PolicyDocument$PulumiAws.make(undefined, name + `MigrationAccessPolicy`, [{
27
30
  Sid: "AllowGetSecret",
@@ -177,6 +177,7 @@ let provision = (
177
177
 
178
178
  let runtime = RuntimeEnvironment_Lambda.makeFromCodeAsset(
179
179
  ~name,
180
+ ~unitKind=ReventlessCore.Monitoring.Other("QueryResolver"),
180
181
  ~code,
181
182
  ~sourceCodeHash,
182
183
  ~envVars,
@@ -112,7 +112,10 @@ function provision(api, selection, opts, createNodeResolverOpt) {
112
112
  subnetIds: selection.subnetIds,
113
113
  securityGroupIds: [sgId]
114
114
  }));
115
- let runtime = RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset(name, match.code, match.sourceCodeHash, envVars, 512, 30, undefined, undefined, undefined, undefined, vpcConfig, opts);
115
+ let runtime = RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset(name, {
116
+ TAG: "Other",
117
+ _0: "QueryResolver"
118
+ }, match.code, match.sourceCodeHash, envVars, 512, 30, undefined, undefined, undefined, undefined, vpcConfig, opts);
116
119
  selection.connectionConfig.apply(cc => new (Aws.iam.RolePolicy)(name + "-pgSecret", {
117
120
  policy: PolicyDocument$PulumiAws.toJsonString(PolicyDocument$PulumiAws.make(undefined, name + "-pgSecretPolicy", [{
118
121
  Sid: "AllowGetPgSecret",
@@ -221,6 +221,7 @@ let finish = () =>
221
221
  let cmdTopicName = baseName ++ "CmdHandler"
222
222
  let cmdTopicRuntime = RuntimeEnvironment_Lambda.makeFromCodeAsset(
223
223
  ~name=cmdTopicName,
224
+ ~unitKind=ReventlessCore.Monitoring.CommandHandler,
224
225
  ~code=cmdTopicCode,
225
226
  ~sourceCodeHash=cmdTopicSourceCodeHash,
226
227
  ~envVars=cmdTopicEnvVars,
@@ -250,6 +251,7 @@ let finish = () =>
250
251
  let cmdGenName = baseName ++ "CmdGen"
251
252
  let cmdGenRuntime = RuntimeEnvironment_Lambda.makeFromCodeAsset(
252
253
  ~name=cmdGenName,
254
+ ~unitKind=ReventlessCore.Monitoring.CommandHandler,
253
255
  ~code=cmdGenCode,
254
256
  ~sourceCodeHash=cmdGenSourceCodeHash,
255
257
  ~envVars=cmdGenEnvVars,
@@ -294,6 +296,7 @@ let finish = () =>
294
296
  let evtMapperName = baseName ++ "EventMapper"
295
297
  let evtMapperRuntime = RuntimeEnvironment_Lambda.makeFromCodeAsset(
296
298
  ~name=evtMapperName,
299
+ ~unitKind=ReventlessCore.Monitoring.CommandHandler,
297
300
  ~code=evtMapperCode,
298
301
  ~sourceCodeHash=evtMapperSourceCodeHash,
299
302
  ~envVars=evtMapperEnvVars,
@@ -173,7 +173,7 @@ function finish() {
173
173
  cmdTopicEnvVars["HANDLER_CONFIG"] = cmdTopicHandlerConfigOutput;
174
174
  let match = Util_Bundle$ReventlessAws.buildCodeArchive("@reventlessdev/reventless-aws/src/adapter/Runtime/AggregateEntryPoint.mjs", packageDirs, undefined);
175
175
  let cmdTopicName = baseName + "CmdHandler";
176
- let cmdTopicRuntime = RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset(cmdTopicName, match.code, match.sourceCodeHash, cmdTopicEnvVars, Math.max(spec.commandTopicMemorySize, 1024), Math.max(spec.commandTopicTimeout, 30), undefined, undefined, undefined, undefined, undefined, aggregateOpts);
176
+ let cmdTopicRuntime = RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset(cmdTopicName, "CommandHandler", match.code, match.sourceCodeHash, cmdTopicEnvVars, Math.max(spec.commandTopicMemorySize, 1024), Math.max(spec.commandTopicTimeout, 30), undefined, undefined, undefined, undefined, undefined, aggregateOpts);
177
177
  spec.commandTopicConnects.forEach(connect => connect(cmdTopicRuntime));
178
178
  if (spec.commandGeneratorConnects.length !== 0) {
179
179
  let cmdGenHandlerConfigOutput = Pulumi.all([
@@ -185,7 +185,7 @@ function finish() {
185
185
  cmdGenEnvVars["HANDLER_CONFIG"] = cmdGenHandlerConfigOutput;
186
186
  let match$1 = Util_Bundle$ReventlessAws.buildCodeArchive("@reventlessdev/reventless-aws/src/adapter/Runtime/AggregateEntryPoint.mjs", packageDirs, undefined);
187
187
  let cmdGenName = baseName + "CmdGen";
188
- let cmdGenRuntime = RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset(cmdGenName, match$1.code, match$1.sourceCodeHash, cmdGenEnvVars, Math.max(spec.commandGeneratorMemorySize, 1024), Math.max(spec.commandGeneratorTimeout, 30), undefined, undefined, undefined, undefined, undefined, aggregateOpts);
188
+ let cmdGenRuntime = RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset(cmdGenName, "CommandHandler", match$1.code, match$1.sourceCodeHash, cmdGenEnvVars, Math.max(spec.commandGeneratorMemorySize, 1024), Math.max(spec.commandGeneratorTimeout, 30), undefined, undefined, undefined, undefined, undefined, aggregateOpts);
189
189
  spec.commandGeneratorConnects.forEach(connect => connect(cmdGenRuntime));
190
190
  }
191
191
  let match$2 = spec.eventCollectorChannelSpec;
@@ -208,7 +208,7 @@ function finish() {
208
208
  evtMapperPackageDirs[mappingsPkg] = Util_Bundle$ReventlessAws.resolvePackageRoot(mappingsPkg);
209
209
  let match$4 = Util_Bundle$ReventlessAws.buildCodeArchive("@reventlessdev/reventless-aws/src/adapter/Runtime/EventMapperEntryPoint.mjs", evtMapperPackageDirs, undefined);
210
210
  let evtMapperName = baseName + "EventMapper";
211
- let evtMapperRuntime = RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset(evtMapperName, match$4.code, match$4.sourceCodeHash, evtMapperEnvVars, Math.max(spec.eventCollectorMemorySize, 2048), Math.max(spec.eventCollectorTimeout, 180), undefined, undefined, undefined, undefined, undefined, aggregateOpts);
211
+ let evtMapperRuntime = RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset(evtMapperName, "CommandHandler", match$4.code, match$4.sourceCodeHash, evtMapperEnvVars, Math.max(spec.eventCollectorMemorySize, 2048), Math.max(spec.eventCollectorTimeout, 180), undefined, undefined, undefined, undefined, undefined, aggregateOpts);
212
212
  EventCollectorChannel_DynamoDbStream$ReventlessAws.connect(evtMapperName, [match$2], evtMapperRuntime, aggregateOpts);
213
213
  });
214
214
  }
@@ -224,6 +224,7 @@ let finish = () =>
224
224
  let cmdTopicName = baseName ++ "CmdHandler"
225
225
  let cmdTopicRuntime = RuntimeEnvironment_Lambda.makeFromCodeAsset(
226
226
  ~name=cmdTopicName,
227
+ ~unitKind=ReventlessCore.Monitoring.CommandHandler,
227
228
  ~code=cmdTopicCode,
228
229
  ~sourceCodeHash=cmdTopicSourceCodeHash,
229
230
  ~envVars=cmdTopicEnvVars,
@@ -254,6 +255,7 @@ let finish = () =>
254
255
  let cmdGenName = baseName ++ "CmdGen"
255
256
  let cmdGenRuntime = RuntimeEnvironment_Lambda.makeFromCodeAsset(
256
257
  ~name=cmdGenName,
258
+ ~unitKind=ReventlessCore.Monitoring.CommandHandler,
257
259
  ~code=cmdGenCode,
258
260
  ~sourceCodeHash=cmdGenSourceCodeHash,
259
261
  ~envVars=cmdGenEnvVars,
@@ -298,6 +300,7 @@ let finish = () =>
298
300
  let evtMapperName = baseName ++ "EventMapper"
299
301
  let evtMapperRuntime = RuntimeEnvironment_Lambda.makeFromCodeAsset(
300
302
  ~name=evtMapperName,
303
+ ~unitKind=ReventlessCore.Monitoring.CommandHandler,
301
304
  ~code=evtMapperCode,
302
305
  ~sourceCodeHash=evtMapperSourceCodeHash,
303
306
  ~envVars=evtMapperEnvVars,
@@ -173,7 +173,7 @@ function finish() {
173
173
  cmdTopicEnvVars["HANDLER_CONFIG"] = cmdTopicHandlerConfigOutput;
174
174
  let match = Util_Bundle$ReventlessAws.buildCodeArchive("@reventlessdev/reventless-aws/src/adapter/Runtime/AggregateEntryPoint.mjs", packageDirs, undefined);
175
175
  let cmdTopicName = baseName + "CmdHandler";
176
- let cmdTopicRuntime = RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset(cmdTopicName, match.code, match.sourceCodeHash, cmdTopicEnvVars, Math.max(spec.commandTopicMemorySize, 1024), Math.max(spec.commandTopicTimeout, 30), undefined, undefined, undefined, undefined, undefined, aggregateOpts);
176
+ let cmdTopicRuntime = RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset(cmdTopicName, "CommandHandler", match.code, match.sourceCodeHash, cmdTopicEnvVars, Math.max(spec.commandTopicMemorySize, 1024), Math.max(spec.commandTopicTimeout, 30), undefined, undefined, undefined, undefined, undefined, aggregateOpts);
177
177
  spec.commandTopicConnects.forEach(connect => connect(cmdTopicRuntime));
178
178
  if (spec.commandGeneratorConnects.length !== 0) {
179
179
  let cmdGenHandlerConfigOutput = Pulumi.all([
@@ -186,7 +186,7 @@ function finish() {
186
186
  cmdGenEnvVars["DISPATCH_MODE"] = "async";
187
187
  let match$1 = Util_Bundle$ReventlessAws.buildCodeArchive("@reventlessdev/reventless-aws/src/adapter/Runtime/AggregateEntryPoint.mjs", packageDirs, undefined);
188
188
  let cmdGenName = baseName + "CmdGen";
189
- let cmdGenRuntime = RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset(cmdGenName, match$1.code, match$1.sourceCodeHash, cmdGenEnvVars, Math.max(spec.commandGeneratorMemorySize, 1024), Math.max(spec.commandGeneratorTimeout, 30), undefined, undefined, undefined, undefined, undefined, aggregateOpts);
189
+ let cmdGenRuntime = RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset(cmdGenName, "CommandHandler", match$1.code, match$1.sourceCodeHash, cmdGenEnvVars, Math.max(spec.commandGeneratorMemorySize, 1024), Math.max(spec.commandGeneratorTimeout, 30), undefined, undefined, undefined, undefined, undefined, aggregateOpts);
190
190
  spec.commandGeneratorConnects.forEach(connect => connect(cmdGenRuntime));
191
191
  }
192
192
  let match$2 = spec.eventCollectorChannelSpec;
@@ -209,7 +209,7 @@ function finish() {
209
209
  evtMapperPackageDirs[mappingsPkg] = Util_Bundle$ReventlessAws.resolvePackageRoot(mappingsPkg);
210
210
  let match$4 = Util_Bundle$ReventlessAws.buildCodeArchive("@reventlessdev/reventless-aws/src/adapter/Runtime/EventMapperEntryPoint.mjs", evtMapperPackageDirs, undefined);
211
211
  let evtMapperName = baseName + "EventMapper";
212
- let evtMapperRuntime = RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset(evtMapperName, match$4.code, match$4.sourceCodeHash, evtMapperEnvVars, Math.max(spec.eventCollectorMemorySize, 2048), Math.max(spec.eventCollectorTimeout, 180), undefined, undefined, undefined, undefined, undefined, aggregateOpts);
212
+ let evtMapperRuntime = RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset(evtMapperName, "CommandHandler", match$4.code, match$4.sourceCodeHash, evtMapperEnvVars, Math.max(spec.eventCollectorMemorySize, 2048), Math.max(spec.eventCollectorTimeout, 180), undefined, undefined, undefined, undefined, undefined, aggregateOpts);
213
213
  EventCollectorChannel_DynamoDbStream$ReventlessAws.connect(evtMapperName, [match$2], evtMapperRuntime, aggregateOpts);
214
214
  });
215
215
  }
@@ -217,6 +217,7 @@ let finish = () =>
217
217
 
218
218
  let runtime = RuntimeEnvironment_Lambda.makeFromCodeAsset(
219
219
  ~name=lambdaName,
220
+ ~unitKind=ReventlessCore.Monitoring.CommandHandler,
220
221
  ~code,
221
222
  ~sourceCodeHash,
222
223
  ~envVars,
@@ -152,7 +152,7 @@ function finish() {
152
152
  packageDirs[specPkg] = Util_Bundle$ReventlessAws.resolvePackageRoot(specPkg);
153
153
  packageDirs[behaviorPkg] = Util_Bundle$ReventlessAws.resolvePackageRoot(behaviorPkg);
154
154
  let match = Util_Bundle$ReventlessAws.buildCodeArchive("@reventlessdev/reventless-aws/src/adapter/Runtime/AggregateEntryPoint.mjs", packageDirs, undefined);
155
- let runtime = RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset(lambdaName, match.code, match.sourceCodeHash, envVars, spec.memorySize, spec.timeout, undefined, undefined, undefined, undefined, undefined, aggregateOpts);
155
+ let runtime = RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset(lambdaName, "CommandHandler", match.code, match.sourceCodeHash, envVars, spec.memorySize, spec.timeout, undefined, undefined, undefined, undefined, undefined, aggregateOpts);
156
156
  spec.connects.forEach(connect => connect(runtime));
157
157
  let channelSpecs = Stdlib_Option.mapOr(spec.eventCollectorChannelSpec, [], cs => [cs]);
158
158
  EventCollectorChannel_DynamoDbStream$ReventlessAws.connect(name, channelSpecs, runtime, aggregateOpts);
@@ -214,6 +214,7 @@ let finish = () =>
214
214
 
215
215
  let runtime = RuntimeEnvironment_Lambda.makeFromCodeAsset(
216
216
  ~name,
217
+ ~unitKind=ReventlessCore.Monitoring.CommandHandler,
217
218
  ~code,
218
219
  ~sourceCodeHash,
219
220
  ~envVars,
@@ -152,7 +152,7 @@ function finish() {
152
152
  packageDirs[specPkg] = Util_Bundle$ReventlessAws.resolvePackageRoot(specPkg);
153
153
  packageDirs[behaviorPkg] = Util_Bundle$ReventlessAws.resolvePackageRoot(behaviorPkg);
154
154
  let match = Util_Bundle$ReventlessAws.buildCodeArchive("@reventlessdev/reventless-aws/src/adapter/Runtime/AggregateEntryPoint.mjs", packageDirs, undefined);
155
- let runtime = RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset(name, match.code, match.sourceCodeHash, envVars, spec.memorySize, spec.timeout, undefined, undefined, undefined, undefined, undefined, aggregateOpts);
155
+ let runtime = RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset(name, "CommandHandler", match.code, match.sourceCodeHash, envVars, spec.memorySize, spec.timeout, undefined, undefined, undefined, undefined, undefined, aggregateOpts);
156
156
  spec.connects.forEach(connect => connect(runtime));
157
157
  let channelSpecs = Stdlib_Option.mapOr(spec.eventCollectorChannelSpec, [], cs => [cs]);
158
158
  EventCollectorChannel_DynamoDbStream$ReventlessAws.connect(name, channelSpecs, runtime, aggregateOpts);
@@ -311,6 +311,7 @@ let finish = () =>
311
311
 
312
312
  let runtime = RuntimeEnvironment_Lambda.makeFromCodeAsset(
313
313
  ~name="AllAggregatesCmdHandler",
314
+ ~unitKind=ReventlessCore.Monitoring.CommandHandler,
314
315
  ~code,
315
316
  ~sourceCodeHash,
316
317
  ~envVars,
@@ -196,7 +196,7 @@ function finish() {
196
196
  subnetIds: pgSelection.subnetIds,
197
197
  securityGroupIds: [sgId]
198
198
  })) : undefined;
199
- let runtime = RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset("AllAggregatesCmdHandler", match.code, match.sourceCodeHash, envVars, cfg.memorySize, cfg.timeout, cfg.reservedConcurrency, cfg.ephemeralStorageMb, cfg.logRetentionDays, undefined, vpcConfig, opts);
199
+ let runtime = RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset("AllAggregatesCmdHandler", "CommandHandler", match.code, match.sourceCodeHash, envVars, cfg.memorySize, cfg.timeout, cfg.reservedConcurrency, cfg.ephemeralStorageMb, cfg.logRetentionDays, undefined, vpcConfig, opts);
200
200
  if (pgSelection !== undefined) {
201
201
  pgSelection.connectionConfig.apply(cc => new (Aws.iam.RolePolicy)("AllAggregatesCmdHandler-pgSecret", {
202
202
  policy: PolicyDocument$PulumiAws.toJsonString(PolicyDocument$PulumiAws.make(undefined, "AllAggregatesCmdHandler-pgSecretPolicy", [{
@@ -290,6 +290,7 @@ let finish = () =>
290
290
 
291
291
  let runtime = RuntimeEnvironment_Lambda.makeFromCodeAsset(
292
292
  ~name="AllAggregatesAsyncCmdHandler",
293
+ ~unitKind=ReventlessCore.Monitoring.CommandHandler,
293
294
  ~code,
294
295
  ~sourceCodeHash,
295
296
  ~envVars,
@@ -185,7 +185,7 @@ function finish() {
185
185
  subnetIds: pgSelection.subnetIds,
186
186
  securityGroupIds: [sgId]
187
187
  })) : undefined;
188
- let runtime = RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset("AllAggregatesAsyncCmdHandler", match.code, match.sourceCodeHash, envVars, cfg.memorySize, cfg.timeout, cfg.reservedConcurrency, cfg.ephemeralStorageMb, cfg.logRetentionDays, undefined, vpcConfig, opts);
188
+ let runtime = RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset("AllAggregatesAsyncCmdHandler", "CommandHandler", match.code, match.sourceCodeHash, envVars, cfg.memorySize, cfg.timeout, cfg.reservedConcurrency, cfg.ephemeralStorageMb, cfg.logRetentionDays, undefined, vpcConfig, opts);
189
189
  if (pgSelection !== undefined) {
190
190
  pgSelection.connectionConfig.apply(cc => new (Aws.iam.RolePolicy)("AllAggregatesAsyncCmdHandler-pgSecret", {
191
191
  policy: PolicyDocument$PulumiAws.toJsonString(PolicyDocument$PulumiAws.make(undefined, "AllAggregatesAsyncCmdHandler-pgSecretPolicy", [{
@@ -161,6 +161,7 @@ let finish = () =>
161
161
 
162
162
  let runtime = RuntimeEnvironment_Lambda.makeFromCodeAsset(
163
163
  ~name="AllAutomationSlices",
164
+ ~unitKind=ReventlessCore.Monitoring.Reactor,
164
165
  ~code,
165
166
  ~sourceCodeHash,
166
167
  ~envVars,
@@ -116,7 +116,7 @@ function finish() {
116
116
  let envVars = {};
117
117
  envVars["HANDLER_CONFIG"] = handlerConfigOutput;
118
118
  let match$1 = Util_Bundle$ReventlessAws.buildCodeArchive("@reventlessdev/reventless-aws/src/adapter/Runtime/AutomationSliceEntryPoint.mjs", packageDirs, undefined);
119
- let runtime = RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset("AllAutomationSlices", match$1.code, match$1.sourceCodeHash, envVars, match[0], match[1], undefined, undefined, undefined, undefined, undefined, opts);
119
+ let runtime = RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset("AllAutomationSlices", "Reactor", match$1.code, match$1.sourceCodeHash, envVars, match[0], match[1], undefined, undefined, undefined, undefined, undefined, opts);
120
120
  let channelSpecs = storedSpecs.map(param => param.channelSpec);
121
121
  EventCollectorChannel_DynamoDbStream$ReventlessAws.connect("AllAutomationSlices", channelSpecs, runtime, opts);
122
122
  } else {
@@ -92,6 +92,7 @@ let forEventCollector: ReventlessCore.Runtime.forEventCollector<
92
92
 
93
93
  let runtime = RuntimeEnvironment_Lambda.makeFromCodeAsset(
94
94
  ~name,
95
+ ~unitKind=ReventlessCore.Monitoring.EventCollector,
95
96
  ~code,
96
97
  ~sourceCodeHash,
97
98
  ~envVars,
@@ -61,7 +61,7 @@ function forEventCollector(param, eventTopics, resources, memorySizeOpt, timeout
61
61
  packageDirs[specPkg] = Util_Bundle$ReventlessAws.resolvePackageRoot(specPkg);
62
62
  packageDirs[mappingsPkg] = Util_Bundle$ReventlessAws.resolvePackageRoot(mappingsPkg);
63
63
  let match = Util_Bundle$ReventlessAws.buildCodeArchive("@reventlessdev/reventless-aws/src/adapter/Runtime/ReadModelEntryPoint.mjs", packageDirs, undefined);
64
- let runtime = RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset(name, match.code, match.sourceCodeHash, envVars, memorySize, timeout, undefined, undefined, undefined, undefined, undefined, opts);
64
+ let runtime = RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset(name, "EventCollector", match.code, match.sourceCodeHash, envVars, memorySize, timeout, undefined, undefined, undefined, undefined, undefined, opts);
65
65
  EventCollectorChannel_DynamoDbStream$ReventlessAws.connect(name, [{
66
66
  channel: channel,
67
67
  eventTopics: eventTopics,
@@ -283,6 +283,7 @@ let finish = () =>
283
283
 
284
284
  let runtime = RuntimeEnvironment_Lambda.makeFromCodeAsset(
285
285
  ~name="AllReadModels",
286
+ ~unitKind=ReventlessCore.Monitoring.EventCollector,
286
287
  ~code,
287
288
  ~sourceCodeHash,
288
289
  ~envVars,
@@ -158,7 +158,7 @@ function finish() {
158
158
  subnetIds: qdbSelection.subnetIds,
159
159
  securityGroupIds: [sgId]
160
160
  })) : undefined;
161
- let runtime = RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset("AllReadModels", match$1.code, match$1.sourceCodeHash, envVars, match[0], match[1], undefined, undefined, undefined, undefined, vpcConfig, opts);
161
+ let runtime = RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset("AllReadModels", "EventCollector", match$1.code, match$1.sourceCodeHash, envVars, match[0], match[1], undefined, undefined, undefined, undefined, vpcConfig, opts);
162
162
  if (qdbSelection !== undefined && anyPgBacked) {
163
163
  qdbSelection.connectionConfig.apply(cc => new (Aws.iam.RolePolicy)("AllReadModels-pgSecret", {
164
164
  policy: PolicyDocument$PulumiAws.toJsonString(PolicyDocument$PulumiAws.make(undefined, "AllReadModels-pgSecretPolicy", [{
@@ -70,6 +70,7 @@ let forCommandTopic = (
70
70
 
71
71
  let runtime = RuntimeEnvironment_Lambda.makeFromCodeAsset(
72
72
  ~name,
73
+ ~unitKind=ReventlessCore.Monitoring.CommandHandler,
73
74
  ~code,
74
75
  ~sourceCodeHash,
75
76
  ~envVars,
@@ -39,7 +39,7 @@ function forCommandTopic(param, connect, memorySizeOpt, timeoutOpt, specModuleUr
39
39
  packageDirs[specPkg] = Util_Bundle$ReventlessAws.resolvePackageRoot(specPkg);
40
40
  packageDirs[mappingsPkg] = Util_Bundle$ReventlessAws.resolvePackageRoot(mappingsPkg);
41
41
  let match = Util_Bundle$ReventlessAws.buildCodeArchive("@reventlessdev/reventless-aws/src/adapter/Runtime/ExtensionPointEntryPoint.mjs", packageDirs, undefined);
42
- return connect(RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset(name, match.code, match.sourceCodeHash, envVars, memorySize, timeout, undefined, undefined, undefined, undefined, undefined, opts));
42
+ return connect(RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset(name, "CommandHandler", match.code, match.sourceCodeHash, envVars, memorySize, timeout, undefined, undefined, undefined, undefined, undefined, opts));
43
43
  }
44
44
 
45
45
  function finish() {
@@ -66,6 +66,10 @@ let make: ReventlessCore.Runtime.environmentMaker<'event, context, 'result, part
66
66
 
67
67
  let makeFromCodeAsset: (
68
68
  ~name: string,
69
+ /** The monitoring role this execution unit plays. Every call site passes its
70
+ kind; `makeFromCodeAsset` announces the provisioned Lambda to the
71
+ `Monitoring` registry (no-op unless an extension registered a backend). */
72
+ ~unitKind: ReventlessCore.Monitoring.unitKind,
69
73
  ~code: Pulumi.Archive.t,
70
74
  ~sourceCodeHash: string,
71
75
  ~envVars: dict<Pulumi.Input.t<string>>=?,
@@ -86,6 +90,7 @@ let makeFromCodeAsset: (
86
90
  ~opts: Pulumi.ComponentResource.options=?,
87
91
  ) => ReventlessCore.Runtime.environment<parts> = (
88
92
  ~name,
93
+ ~unitKind,
89
94
  ~code,
90
95
  ~sourceCodeHash,
91
96
  ~envVars=Dict.make(),
@@ -253,12 +258,16 @@ let makeFromCodeAsset: (
253
258
  }
254
259
  })
255
260
 
261
+ let lambdaResource = lambda->Util.Lambda.functionToResource(~tags=tags->Pulumi.Output.fromInput)
262
+
263
+ // Announce the provisioned execution unit to the Monitoring registry. No-op
264
+ // unless a deploy program registered a backend via Monitoring.use — see
265
+ // docs/plans/monitoring-hook-seam.md.
266
+ ReventlessCore.Monitoring.notify(~kind=unitKind, ~name, ~component=lambdaResource)
267
+
256
268
  {
257
269
  parts: {lambda: lambda->Pulumi.Output.make, lambdaRole},
258
- resources: [
259
- lambda->Util.Lambda.functionToResource(~tags=tags->Pulumi.Output.fromInput),
260
- Util_IAM_Role.toResource(lambdaRole),
261
- ],
270
+ resources: [lambdaResource, Util_IAM_Role.toResource(lambdaRole)],
262
271
  }
263
272
  }
264
273
 
@@ -13,6 +13,7 @@ import * as AWS_Tags$ReventlessAws from "../AWS_Tags.res.mjs";
13
13
  import * as Adapter$ReventlessCore from "@reventlessdev/reventless-core/src/adapter/Adapter.res.mjs";
14
14
  import * as Runtime$ReventlessCore from "@reventlessdev/reventless-core/src/adapter/Runtime/Runtime.res.mjs";
15
15
  import * as PolicyDocument$PulumiAws from "@reventlessdev/rescript-pulumi-aws/src/IAM/PolicyDocument.res.mjs";
16
+ import * as Monitoring$ReventlessCore from "@reventlessdev/reventless-core/src/adapter/Monitoring/Monitoring.res.mjs";
16
17
  import * as Util_Bundle$ReventlessAws from "../../util/Util_Bundle.res.mjs";
17
18
  import * as Util_Lambda$ReventlessAws from "../../util/Util_Lambda.res.mjs";
18
19
  import * as Util_Pulumi$ReventlessCore from "@reventlessdev/reventless-core/src/util/Util_Pulumi.res.mjs";
@@ -42,7 +43,7 @@ function make(name, handler, memorySizeOpt, timeoutOpt, opts) {
42
43
  };
43
44
  }
44
45
 
45
- function makeFromCodeAsset(name, code, sourceCodeHash, envVarsOpt, memorySizeOpt, timeoutOpt, reservedConcurrency, ephemeralStorageMb, logRetentionDays, dcbMetricsOpt, vpcConfig, opts) {
46
+ function makeFromCodeAsset(name, unitKind, code, sourceCodeHash, envVarsOpt, memorySizeOpt, timeoutOpt, reservedConcurrency, ephemeralStorageMb, logRetentionDays, dcbMetricsOpt, vpcConfig, opts) {
46
47
  let envVars = envVarsOpt !== undefined ? envVarsOpt : ({});
47
48
  let memorySize = memorySizeOpt !== undefined ? memorySizeOpt : Runtime$ReventlessCore.CommandHandlerDefaults.memorySize;
48
49
  let timeout = timeoutOpt !== undefined ? timeoutOpt : Runtime$ReventlessCore.CommandHandlerDefaults.timeout;
@@ -143,13 +144,15 @@ function makeFromCodeAsset(name, code, sourceCodeHash, envVarsOpt, memorySizeOpt
143
144
  return;
144
145
  }
145
146
  });
147
+ let lambdaResource = Util_Lambda$ReventlessAws.functionToResource(tags, lambda);
148
+ Monitoring$ReventlessCore.notify(unitKind, name, lambdaResource);
146
149
  return {
147
150
  parts: {
148
151
  lambda: Pulumi.output(lambda),
149
152
  lambdaRole: lambdaRole
150
153
  },
151
154
  resources: [
152
- Util_Lambda$ReventlessAws.functionToResource(tags, lambda),
155
+ lambdaResource,
153
156
  Util_IAM_Role$ReventlessAws.toResource(lambdaRole)
154
157
  ]
155
158
  };
@@ -152,6 +152,7 @@ let finish = () =>
152
152
 
153
153
  let runtime = RuntimeEnvironment_Lambda.makeFromCodeAsset(
154
154
  ~name="AllSideEffectHandlers",
155
+ ~unitKind=ReventlessCore.Monitoring.Reactor,
155
156
  ~code,
156
157
  ~sourceCodeHash,
157
158
  ~envVars,
@@ -100,7 +100,7 @@ function finish() {
100
100
  let envVars = {};
101
101
  envVars["HANDLER_CONFIG"] = handlerConfigOutput;
102
102
  let match$1 = Util_Bundle$ReventlessAws.buildCodeArchive("@reventlessdev/reventless-aws/src/adapter/Runtime/SideEffectEntryPoint.mjs", packageDirs, undefined);
103
- let runtime = RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset("AllSideEffectHandlers", match$1.code, match$1.sourceCodeHash, envVars, match[0], match[1], undefined, undefined, undefined, undefined, undefined, opts);
103
+ let runtime = RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset("AllSideEffectHandlers", "Reactor", match$1.code, match$1.sourceCodeHash, envVars, match[0], match[1], undefined, undefined, undefined, undefined, undefined, opts);
104
104
  let channelSpecs = storedSpecs.map(param => param.channelSpec);
105
105
  EventCollectorChannel_DynamoDbStream$ReventlessAws.connect("AllSideEffectHandlers", channelSpecs, runtime, opts);
106
106
  } else {
@@ -166,6 +166,7 @@ let forDcbCommandTopic = (
166
166
 
167
167
  let runtime = RuntimeEnvironment_Lambda.makeFromCodeAsset(
168
168
  ~name,
169
+ ~unitKind=ReventlessCore.Monitoring.CommandHandler,
169
170
  ~code,
170
171
  ~sourceCodeHash,
171
172
  ~envVars,
@@ -77,7 +77,7 @@ function forDcbCommandTopic(slicePaths, dcbTableName, pluginName, syncConfig, as
77
77
  subnetIds: pgSelection.subnetIds,
78
78
  securityGroupIds: [sgId]
79
79
  })) : undefined;
80
- let runtime = RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset(name, match.code, match.sourceCodeHash, envVars, cfg.memorySize, cfg.timeout, cfg.reservedConcurrency, cfg.ephemeralStorageMb, cfg.logRetentionDays, true, vpcConfig, opts);
80
+ let runtime = RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset(name, "CommandHandler", match.code, match.sourceCodeHash, envVars, cfg.memorySize, cfg.timeout, cfg.reservedConcurrency, cfg.ephemeralStorageMb, cfg.logRetentionDays, true, vpcConfig, opts);
81
81
  if (pgSelection !== undefined) {
82
82
  pgSelection.connectionConfig.apply(cc => new (Aws.iam.RolePolicy)(name + `-pgSecret`, {
83
83
  policy: PolicyDocument$PulumiAws.toJsonString(PolicyDocument$PulumiAws.make(undefined, name + `-pgSecretPolicy`, [{
@@ -276,6 +276,7 @@ let buildLambda = (
276
276
 
277
277
  let runtime = RuntimeEnvironment_Lambda.makeFromCodeAsset(
278
278
  ~name="AllStateViewSlices",
279
+ ~unitKind=ReventlessCore.Monitoring.Projection,
279
280
  ~code,
280
281
  ~sourceCodeHash,
281
282
  ~envVars,
@@ -158,7 +158,7 @@ function buildLambda(parent, handlerOutputs, packageDirs, channelSpecs, feedQueu
158
158
  subnetIds: qdbSelection.subnetIds,
159
159
  securityGroupIds: [sgId]
160
160
  })) : undefined;
161
- let runtime = RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset("AllStateViewSlices", match.code, match.sourceCodeHash, envVars, memorySize, timeout, undefined, undefined, undefined, undefined, vpcConfig, opts);
161
+ let runtime = RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset("AllStateViewSlices", "Projection", match.code, match.sourceCodeHash, envVars, memorySize, timeout, undefined, undefined, undefined, undefined, vpcConfig, opts);
162
162
  if (qdbSelection !== undefined) {
163
163
  qdbSelection.connectionConfig.apply(cc => new (Aws.iam.RolePolicy)("AllStateViewSlices-pgSecret", {
164
164
  policy: PolicyDocument$PulumiAws.toJsonString(PolicyDocument$PulumiAws.make(undefined, "AllStateViewSlices-pgSecretPolicy", [{
@@ -73,6 +73,7 @@ let forBucketCallback = (
73
73
 
74
74
  let runtime = RuntimeEnvironment_Lambda.makeFromCodeAsset(
75
75
  ~name=fullName,
76
+ ~unitKind=ReventlessCore.Monitoring.Task,
76
77
  ~code,
77
78
  ~sourceCodeHash,
78
79
  ~envVars,
@@ -29,7 +29,7 @@ function forBucketCallback(param, connect, memorySizeOpt, timeoutOpt, name, call
29
29
  let pkg = Util_Bundle$ReventlessAws.extractPackageName(callbackModulePath);
30
30
  packageDirs[pkg] = Util_Bundle$ReventlessAws.resolvePackageRoot(pkg);
31
31
  let match = Util_Bundle$ReventlessAws.buildCodeArchive("@reventlessdev/reventless-aws/src/adapter/Runtime/TaskBucketEntryPoint.mjs", packageDirs, undefined);
32
- let runtime = RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset(fullName, match.code, match.sourceCodeHash, envVars, memorySize, timeout, undefined, undefined, undefined, undefined, undefined, {
32
+ let runtime = RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset(fullName, "Task", match.code, match.sourceCodeHash, envVars, memorySize, timeout, undefined, undefined, undefined, undefined, undefined, {
33
33
  parent: resource
34
34
  });
35
35
  if (schedulerConfig !== undefined) {
@@ -102,6 +102,7 @@ let forCommandTopic = (
102
102
 
103
103
  let runtime = RuntimeEnvironment_Lambda.makeFromCodeAsset(
104
104
  ~name,
105
+ ~unitKind=ReventlessCore.Monitoring.CommandHandler,
105
106
  ~code,
106
107
  ~sourceCodeHash,
107
108
  ~envVars,
@@ -66,7 +66,7 @@ function forCommandTopic(param, connect, memorySizeOpt, timeoutOpt, param$1, par
66
66
  });
67
67
  envVars["HANDLER_CONFIG"] = handlerConfigJson;
68
68
  let match = Util_Bundle$ReventlessAws.buildCodeArchive("@reventlessdev/reventless-aws/src/adapter/Runtime/PluginExtensionPointEntryPoint.mjs", {}, undefined);
69
- return connect(RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset(name, match.code, match.sourceCodeHash, envVars, memorySize, timeout, undefined, undefined, undefined, undefined, undefined, opts));
69
+ return connect(RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset(name, "CommandHandler", match.code, match.sourceCodeHash, envVars, memorySize, timeout, undefined, undefined, undefined, undefined, undefined, opts));
70
70
  }
71
71
 
72
72
  function finish() {
@@ -483,6 +483,7 @@ module Make = (
483
483
 
484
484
  let runtime = RuntimeEnvironment_Lambda.makeFromCodeAsset(
485
485
  ~name,
486
+ ~unitKind=ReventlessCore.Monitoring.EventCollector,
486
487
  ~code=codeOutput->Obj.magic,
487
488
  ~sourceCodeHash=sourceCodeHashOutput->Obj.magic,
488
489
  ~envVars,
@@ -760,6 +761,7 @@ module Make = (
760
761
 
761
762
  let runtime = RuntimeEnvironment_Lambda.makeFromCodeAsset(
762
763
  ~name,
764
+ ~unitKind=ReventlessCore.Monitoring.Scheduler,
763
765
  ~code,
764
766
  ~sourceCodeHash,
765
767
  ~envVars,
@@ -312,7 +312,7 @@ function Make(EventCollectorChannel) {
312
312
  });
313
313
  let codeOutput = bundleOutput.apply(b => b.code);
314
314
  let sourceCodeHashOutput = bundleOutput.apply(b => b.sourceCodeHash);
315
- let runtime = RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset(name, codeOutput, sourceCodeHashOutput, envVars, memorySize, timeout, undefined, undefined, undefined, undefined, undefined, opts);
315
+ let runtime = RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset(name, "EventCollector", codeOutput, sourceCodeHashOutput, envVars, memorySize, timeout, undefined, undefined, undefined, undefined, undefined, opts);
316
316
  EventCollectorChannel.connect(name, [{
317
317
  channel: eventCollector.channel,
318
318
  eventTopics: eventTopics,
@@ -434,7 +434,7 @@ function Make(EventCollectorChannel) {
434
434
  envVars["PLUGIN_ID"] = Pulumi.output(hbConfig.pluginId);
435
435
  envVars["HEARTBEAT_TIMEOUT"] = Pulumi.output(hbConfig.heartbeatTimeout.toString());
436
436
  let match = Util_Bundle$ReventlessAws.buildCodeArchive("@reventlessdev/reventless-aws/src/adapter/Runtime/HeartbeatEntryPoint.mjs", {}, undefined);
437
- connect(RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset(name, match.code, match.sourceCodeHash, envVars, memorySize, timeout, undefined, undefined, undefined, undefined, undefined, opts));
437
+ connect(RuntimeEnvironment_Lambda$ReventlessAws.makeFromCodeAsset(name, "Scheduler", match.code, match.sourceCodeHash, envVars, memorySize, timeout, undefined, undefined, undefined, undefined, undefined, opts));
438
438
  };
439
439
  let forDcbCommandTopic = (param, connect, $staropt$star, $staropt$star$1, dcbCommandTopic) => {
440
440
  $staropt$star !== undefined;
@@ -70,6 +70,17 @@ let handler = Lambda.Function.make(
70
70
  ~opts,
71
71
  )
72
72
 
73
+ // Second Monitoring provisioning site (§2): the dead-letter mechanism. Role-based
74
+ // kind, mechanism-agnostic resource — no-op unless a backend is registered.
75
+ ReventlessCore.Monitoring.notify(
76
+ ~kind=DeadLetterSink,
77
+ ~name,
78
+ ~component=Util_Lambda.functionToResource(
79
+ handler,
80
+ ~tags=AWS.Tags.make(~name, ReventlessCore.CommandTopic.componentType)->Pulumi.Output.fromInput,
81
+ ),
82
+ )
83
+
73
84
  let lambda = handler->Pulumi.Output.make
74
85
 
75
86
  let _subscription = Util_EventSourceMapping.subscribeSqs(~lambda, ~name, ~queue, ~opts)
@@ -8,7 +8,9 @@ import * as Lambda$PulumiAws from "@reventlessdev/rescript-pulumi-aws/src/Lambda
8
8
  import * as AWS$ReventlessAws from "../adapter/AWS.res.mjs";
9
9
  import * as AWS_Tags$ReventlessAws from "../adapter/AWS_Tags.res.mjs";
10
10
  import * as PolicyDocument$PulumiAws from "@reventlessdev/rescript-pulumi-aws/src/IAM/PolicyDocument.res.mjs";
11
+ import * as Monitoring$ReventlessCore from "@reventlessdev/reventless-core/src/adapter/Monitoring/Monitoring.res.mjs";
11
12
  import * as Util_Bundle$ReventlessAws from "./Util_Bundle.res.mjs";
13
+ import * as Util_Lambda$ReventlessAws from "./Util_Lambda.res.mjs";
12
14
  import * as CommandTopic$ReventlessCore from "@reventlessdev/reventless-core/src/components/CommandTopic/CommandTopic.res.mjs";
13
15
  import * as Util_EventSourceMapping$ReventlessAws from "./Util_EventSourceMapping.res.mjs";
14
16
 
@@ -68,6 +70,8 @@ let handler = new (Aws.lambda.Function)(name, {
68
70
  sourceCodeHash: sourceCodeHash
69
71
  }, opts);
70
72
 
73
+ Monitoring$ReventlessCore.notify("DeadLetterSink", name, Util_Lambda$ReventlessAws.functionToResource(AWS_Tags$ReventlessAws.make(name, CommandTopic$ReventlessCore.componentType), handler));
74
+
71
75
  let lambda = Pulumi.output(handler);
72
76
 
73
77
  let _subscription = Util_EventSourceMapping$ReventlessAws.subscribeSqs(lambda, name, queue, undefined, opts);