Skip to main content

Crate zerodds_corba_cos_transactions

Crate zerodds_corba_cos_transactions 

Source
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 + TransactionService service 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).