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]

Reply via email to