Part of #5296 (Architecture Review, Q4). Follow-up to #5340 / PR #5346 (D2a).
What this issue tracks
D2a (PR #5346) landed the in-process A2A readiness checks:
- TaskExpirer reaper + unit test
- MetaAgentCardRegistry (cluster-shared) + unit test
- A2AGatewayService.createTask try/catch (future-based failure surfacing) + integration test
- docs/a2a-readiness-decision.md (keep A2A Experimental)
D2a pin the contract at the user-facing API. D2b is the Testcontainers-based end-to-end suite that exercises the same scenarios against a live Meta + broker + multi-instance EM deployment. D2b is the gate for promoting A2A from Experimental to Beta (per docs/a2a-readiness-decision.md).
What needs to land
- **A new module ** under the runtime test sources, gated on a Testcontainers profile (so the default test task stays fast and green).
- Container composition:
- Nacos 2.x for the MetaStore (NacosMetaStore is the production wiring)
- One RocketMQ 5.x broker (or Kafka, depending on what the suite wants to exercise)
- 3 EventMesh Runtime instances sharing the Nacos Meta
- Test scenarios (mirror D2a's in-process tests, but end-to-end):
- Happy path: A2A client on EM-1 submits a task to agent-A registered on EM-2; agent-A completes the task; client receives the response.
- Failure mode: kill the Nacos container mid-task-submit; the A2A gateway surfaces the failure to the client within a bounded timeout (not hung, not silently dropped).
- Recovery: restart Nacos; subsequent submits succeed.
- Multi-instance fence: two EM instances both believe they own agent-A; the Meta CAS + epoch fencing rejects the stale writer.
- CI: a separate workflow that runs the suite on PRs that touch or . The suite must be green for at least one full release cycle before A2A can be promoted to Beta.
Acceptance
Depends on / Blocks
Part of #5296 (Architecture Review, Q4). Follow-up to #5340 / PR #5346 (D2a).
What this issue tracks
D2a (PR #5346) landed the in-process A2A readiness checks:
D2a pin the contract at the user-facing API. D2b is the Testcontainers-based end-to-end suite that exercises the same scenarios against a live Meta + broker + multi-instance EM deployment. D2b is the gate for promoting A2A from Experimental to Beta (per docs/a2a-readiness-decision.md).
What needs to land
Acceptance
Depends on / Blocks