Skip to content

fix(outbound): narrow recovery blast radius - #782

Merged
pedrosakuma merged 2 commits into
mainfrom
fix/780-ready-decouple-recovery
Aug 7, 2026
Merged

pedrosakuma merged 2 commits into
mainfrom
fix/780-ready-decouple-recovery

Conversation

@pedrosakuma

@pedrosakuma pedrosakuma commented Aug 7, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • keep /ready routable after outbound recovery classification completes, while retaining fail-closed order submission for affected scopes
  • narrow outbound recovery gating from firm-wide to per-end-client across REST, algos, application services, and FIXP bot ingress
  • prevent unknown-firm evidence from broadcasting blockers to unrelated firms and preserve historical blockers across stable-reference key rotation
  • classify recovered reconciliation markers as outbound-recovery drains so operator resolution can clear them

Tests

  • dotnet build B3TradingPlatform.slnx --no-restore -c Release
  • dotnet test backend/tests/B3.Trading.Application.Tests/B3.Trading.Application.Tests.csproj --no-restore -c Release (1990 passed)
  • dotnet test backend/tests/B3.Trading.Api.Tests/B3.Trading.Api.Tests.csproj --no-restore -c Release (688 passed)
  • dotnet test backend/tests/B3.Trading.EntryPointListener.Tests/B3.Trading.EntryPointListener.Tests.csproj --no-restore -c Release (233 passed)
  • dotnet format B3TradingPlatform.slnx --no-restore --verify-no-changes

Protocol evidence gate

Does this PR add or change a dependency on B3MatchingPlatform / B3MarketDataPlatform wire behavior?

  • No, this PR does not change cross-repo wire assumptions.
  • Yes, and merged upstream evidence plus official schema details are listed below.

Checklist:

  • Upstream issues, RFCs, or proposals are not the only evidence for implementation, or this PR has no cross-repo wire dependency.
  • Participant-side / product requirements do not prescribe venue messages, templates, fields, or enums that do not exist in the official schema and merged upstream implementation.

Closes #780
Closes #781

Keep pod readiness independent from classified outbound reconciliation while preserving submission gates. Scope recovery blockers to stable end-client references across REST, algos, services, and FIXP ingress, including key-rotation candidates.

Closes #780
Closes #781

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Expect the pod to return to ready after cold-start classification while preserving the missed execution-report replay assertions.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@pedrosakuma
pedrosakuma merged commit 00e085d into main Aug 7, 2026
19 checks passed
@pedrosakuma
pedrosakuma deleted the fix/780-ready-decouple-recovery branch August 7, 2026 16:41
@pedrosakuma pedrosakuma mentioned this pull request Aug 7, 2026
3 of 4 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants