Problem:
The scheduler currently handles all transactions uniformly. For replication, we need a distinct replay mode that enforces strict ordering based on transaction index from the primary, ignoring any other transactions that might come in.
Proposal:
Add a mode switch to TransactionScheduler (execution vs replay). In replay mode:
- Enforce strict ordering of transactions
- Ignore any transaction not marked for replay (log warning) in replcia mode, and vice versa.
- Allow runtime mode switching without restart
- Execution mode remains unchanged (current behavior)
Acceptance criteria:
- Scheduler mode enum (Execution/Replay)
- Runtime mode switch method
- Replay mode enforces index-based ordering
- Non-replay transactions rejected with warning in replay mode
- Execution mode behavior unchanged
Reference: MIMD-0019 Client replay
Parent epic: #935
Problem:
The scheduler currently handles all transactions uniformly. For replication, we need a distinct replay mode that enforces strict ordering based on transaction index from the primary, ignoring any other transactions that might come in.
Proposal:
Add a mode switch to TransactionScheduler (execution vs replay). In replay mode:
Acceptance criteria:
Reference: MIMD-0019 Client replay
Parent epic: #935