Import Status
Quick Reference
Import status tells you what operations were applied and what’s pending due to missing dependencies. Essential for handling out-of-order updates in distributed systems.
Status Structure
interface ImportStatus {
: PeerVersionRange; // What was applied
?: PeerVersionRange; // What needs dependencies
}
interface PeerVersionRange {
[: `${number}`]: {
: number; // Inclusive
: number; // Exclusive (e.g., 0-50 = ops 0-49)
};
}
Pending Operations
Operations become pending when they depend on missing operations (causal dependencies).
Common Scenario: Out-of-Order Delivery
const = new ();
// Peer A creates ops 0-4, then 5-10
const = new ();
.("text").(0, "Hello");
const = .({ : "update" });
.("text").(5, " World");
const = .({ : "update", : .() });
// If update2 arrives first:
const = .();
.(.); // Ops 10-19 pending, need 0-9
// Import missing dependencies:
.(); // Both updates now applied
Handling Pending Operations
async function (
: ,
: ,
: (: ) => <>
) {
const = .();
if (.) {
const = await (.());
.();
}
}
Best Practices
Always Check Status
const = new ();
const = .();
if (.) {
.("Operations pending:", .);
// Fetch missing updates
}
Use Batch Import
const : [] = [
//...
];
const = new ();
const = .();
// Single status check for all updates
Related Documentation
- Version Vector - Understanding version vectors
- Synchronization Guide - Complete sync patterns
- PeerID Management - How peer IDs affect import