aglinxinyuan opened a new pull request, #4831: URL: https://github.com/apache/texera/pull/4831
### What changes were proposed in this PR? Add two specs covering the messaging-layer pure-logic primitives. `AmberFIFOChannelSpec` (per-channel exactly-once FIFO ordering): - Construction defaults (empty queue, sequence 0, zero credit, enabled) - `acceptMessage` in-order delivery advances `currentSeq` and credit - Out-of-order seq stashes; subsequent in-order seq drains the stash in FIFO order - Duplicate-below-current is silently dropped - Duplicate stash does not double-count the stash size - `take` decrements `getQueuedCredit` by the dequeued message size - `enable` / `isEnabled` toggle - `getPortId` throws when no port id is set; returns the most recently configured port id `WorkerPortSpec` (WorkerPort case-class shape): - Default empty channel set / not-completed - Channel set wiring at construction and post-construction append - `completed` mutable flip - Case-class equality across distinct instances `WorkerTimerService` is intentionally skipped because it is a thin wrapper around `AkkaActorService.sendToSelfWithFixedDelay` and would require a full Pekko harness for low-value scheduling assertions. ### Any related issues, documentation, discussions? Closes #4830 ### How was this PR tested? `sbt "WorkflowExecutionService/testOnly org.apache.texera.amber.engine.architecture.messaginglayer.AmberFIFOChannelSpec org.apache.texera.amber.engine.architecture.messaginglayer.WorkerPortSpec"` — 15/15 tests pass. ### Was this PR authored or co-authored using generative AI tooling? Generated-by: Claude Code (Claude Opus 4.7) -- 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]
