aglinxinyuan opened a new issue, #5437: URL: https://github.com/apache/texera/issues/5437
`amber/.../engine/architecture/controller/ClientEvent.scala` defines a small sealed-trait family (`ExecutionStateUpdate`, `ExecutionStatsUpdate`, `RuntimeStatisticsPersist`, `ReportCurrentProcessingTuple`, `WorkerAssignmentUpdate`, `FatalError`, `UpdateExecutorCompleted`, `ReplayStatusUpdate`, `WorkflowRecoveryStatus`) that flows from the controller to the client over Pekko via `WorkflowFIFOMessagePayload`. Nothing pins the data contract or the serialization round-trip today. | Surface | Behavior to pin | | --- | --- | | Per-subtype data contract | Each subtype's constructor params round-trip via case-class accessors; case-class equality holds; the subtype extends `ClientEvent` and `WorkflowFIFOMessagePayload` (compile-time pins). | | Pekko Serialization | Round-trip via `AmberRuntime.serde` — the wire path actually used by the controller-to-client channel. Each subtype must deserialize back to a value-equal instance. | | `FatalError` optional sender | `fromActor` defaults to `None`; can be set to `Some(actorId)`. | | `ReplayStatusUpdate` boolean flag | Both `true` and `false` round-trip. | Spec owns a suite-local `ActorSystem` injected into `AmberRuntime.serde` via reflection and tears it down in `afterAll` (same pattern as `CheckpointSubsystemSpec`). ### Priority P3 - Low ### Task Type - [x] Testing / QA -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
