Skip to content

[codex] Split MarketDataRouter and add staged lifecycle stack - #155

Merged
LimiNode merged 5 commits into
mainfrom
refactor/market-data-router-implementation
Sep 3, 2026
Merged

[codex] Split MarketDataRouter and add staged lifecycle stack#155
LimiNode merged 5 commits into
mainfrom
refactor/market-data-router-implementation

Conversation

@LimiNode

@LimiNode LimiNode commented Aug 28, 2026

Copy link
Copy Markdown
Owner

Summary

  • keep the public Router declarations and public subscription types in MarketDataRouter.hpp
  • move the private Router state and inline definitions to market_data/detail/MarketDataRouter.ipp
  • add the optional ILifecycleModule and LifecycleStack supervisor for staged module processing and reverse-order shutdown
  • integrate lifecycle processing with BaseTradingPlatform and MarketDataRouter
  • document the lifecycle contract in English and Russian, with runnable examples and regression tests
  • keep the public market-data aggregate independent from the broad HTTP/curl utility aggregate

This PR includes the lifecycle-stack changes from the merged #156 commit, so it is intentionally a functional integration PR rather than a mechanical two-file refactor.

Verification

  • Ubuntu Smoke passed at the current HEAD
  • Windows Smoke passed at the current HEAD
  • lifecycle_stack_test and lifecycle_stack_example built and ran on both platforms
  • market-data Router, Hub, SubscriberBase, subscription-contract, and lifecycle safety tests passed
  • market-data Router and SubscriberBase examples ran successfully
  • git diff --check

Stack

Depends on #154 (feat/market-data-router-dispatch). The Router split and staged lifecycle integration are reviewed together because the current branch contains both changes.

@LimiNode
LimiNode force-pushed the refactor/market-data-router-implementation branch from 6281f49 to 6935fe9 Compare August 31, 2026 06:51
@LimiNode
LimiNode force-pushed the feat/market-data-router-dispatch branch from fe0bbc2 to 2f97e5a Compare August 31, 2026 08:48
@LimiNode
LimiNode force-pushed the refactor/market-data-router-implementation branch from 6935fe9 to 864900d Compare August 31, 2026 08:59
@LimiNode
LimiNode force-pushed the feat/market-data-router-dispatch branch from 2f97e5a to 7344aae Compare August 31, 2026 09:13
@LimiNode
LimiNode force-pushed the refactor/market-data-router-implementation branch 4 times, most recently from 0cec0a4 to 762571b Compare September 2, 2026 15:28
@LimiNode LimiNode changed the title [codex] Split MarketDataRouter implementation [codex] Split MarketDataRouter and add staged lifecycle stack Sep 2, 2026
@LimiNode
LimiNode force-pushed the feat/market-data-router-dispatch branch from 271dfde to 3cfeaec Compare September 2, 2026 23:40
@LimiNode
LimiNode changed the base branch from feat/market-data-router-dispatch to main September 3, 2026 00:00
Keep the MarketDataRouter public declarations in the primary header and move its unchanged private state and inline definitions into a guarded detail implementation file.
Introduce the optional ILifecycleModule contract and a non-owning LifecycleStack that processes dependencies forward and shuts them down one stage at a time in reverse order. Integrate MarketDataRouter and BaseTradingPlatform, add a routed-cleanup example and focused tests, and document the contract in synchronized English and Russian guides.
Run the lifecycle stack test and example on Ubuntu and Windows smoke jobs. Document that nested lifecycle stacks must remain acyclic while keeping cycle detection outside the optional stack implementation.
@LimiNode
LimiNode force-pushed the refactor/market-data-router-implementation branch from 84feeec to 90bac3d Compare September 3, 2026 00:00
@LimiNode
LimiNode marked this pull request as ready for review September 3, 2026 00:00
@LimiNode
LimiNode merged commit 84bc98d into main Sep 3, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant