Expand description
Crate zerodds-corba-cos-transactions. Safety classification: STANDARD.
OMG Object Transaction Service (OTS / CosTransactions) 1.4
(formal/2003-09-02) — pure-Rust no_std + alloc, forbid(unsafe_code).
The OTS brings distributed transactions (ACID) into the CORBA model and is the
core lever for the “drop-in for legacy finance systems” migration: 2-phase
commit across multiple servers, with transaction-context propagation via the
GIOP service context TransactionService (id = 0).
Implements:
otid_t(§ OTS Appendix A) — the cross-ORB transaction identifier; byte-exact CDR codec (otid).PropagationContext+TransactionServiceservice context (id = 0) — transaction-context propagation over GIOP (propagation).- 2-phase commit protocol (
prepare/commit/rollback/commit_one_phase/forget) with a vote-driven state machine, incl. read-only optimization + one-phase commit (two_phase). Current/Coordinator/Terminator/Control— the OTS orchestration interfaces as Rust types (transaction).TransactionLog/RecoveryCoordinator(§10.3.7) — durability: the commit decision is force-written before phase 2; a restart resolves in-doubt transactions as presumed-abort (recovery).
Spec: OMG Transaction Service 1.4. Real-Time CORBA + CosTrading are separate (Trading subordinate, RT-CORBA covered via DDS-QoS).
Re-exports§
pub use otid::Otid;pub use propagation::PropagationContext;pub use propagation::TRANSACTION_SERVICE_CONTEXT_ID;pub use propagation::TransIdentity;pub use recovery::InMemoryLog;pub use recovery::LogState;pub use recovery::RecoveryCoordinator;pub use recovery::ResourceResolver;pub use recovery::TransactionLog;pub use recovery::TxOutcome;pub use recovery::coordinate_commit_durable;pub use transaction::Control;pub use transaction::Coordinator;pub use transaction::Current;pub use transaction::Status;pub use transaction::Terminator;pub use transaction::TransactionError;pub use two_phase::Completion;pub use two_phase::HeuristicOutcome;pub use two_phase::Resource;pub use two_phase::Vote;pub use two_phase::coordinate_commit;
Modules§
- otid
otid_t— the cross-ORB transaction identifier (OMG OTS App. A).- propagation
PropagationContext— transaction context propagation over GIOP.- recovery
- Durability + Recovery (OMG OTS §10.3.7
RecoveryCoordinator). - transaction
- OTS orchestration:
Current/Coordinator/Terminator/Control(OMG OTS §10.3) as Rust types over the 2PC engine. - two_
phase - 2-phase commit protocol (OMG OTS §10.3.2
Resource).