Expand description
crafty-proto — wire types and postcard codec shared across all crafty crates.
Defines the on-the-wire representation for Raft peer RPCs, the client API,
cluster join handshakes, and actor messaging. All bodies are encoded with
postcard (wire-transport, serialization). Nothing here performs I/O.
Re-exports§
pub use actor::ActorEnvelope;pub use actor::ActorId;pub use actor::ActorRef;pub use actor::ActorRegistration;pub use actor::ActorTypeId;pub use actor::DeliverAck;pub use actor::DirectoryUpdate;pub use actor::MigrateReply;pub use actor::MigrateRequest;pub use actor::RegisterAck;pub use actor::ScaleReply;pub use actor::ScaleRequest;pub use actor::SpawnReply;pub use actor::SpawnRequest;pub use actor::StopReply;pub use actor::StopRequest;pub use actor_store::StoreCompareAndSetReply;pub use actor_store::StoreCompareAndSetRequest;pub use actor_store::StoreDeleteReply;pub use actor_store::StoreDeleteRequest;pub use actor_store::StoreReplicateOp;pub use actor_store::StoreReplicateReply;pub use actor_store::StoreReplicateRequest;pub use actor_store::StoreSetReply;pub use actor_store::StoreSetRequest;pub use catalog::CatalogAddRequest;pub use catalog::CatalogAddResponse;pub use catalog::CatalogCommand;pub use catalog::CatalogRejection;pub use client::ClientRequest;pub use client::ClientResponse;pub use group::GroupPeerEnvelope;pub use group_migrate::GroupMigrateReply;pub use group_migrate::GroupMigrateRequest;pub use group_migrate::GroupMigrationBundle;pub use group_migrate::GroupMigrationHardState;pub use group_migrate::GroupMigrationSnapshot;pub use group_migrate::GroupMigrationSnapshotMeta;pub use join::JoinRejection;pub use join::JoinRequest;pub use join::JoinResponse;pub use join::PeerBook;pub use join::PeerEntry;pub use leave::LeaveRejection;pub use leave::LeaveRequest;pub use leave::LeaveResponse;pub use queue::QueueAckBatchReply;pub use queue::QueueAckBatchRequest;pub use queue::QueueAckReply;pub use queue::QueueAckRequest;pub use queue::QueueBatchEnqueueJob;pub use queue::QueueEnqueueBatchReply;pub use queue::QueueEnqueueBatchRequest;pub use queue::QueueEnqueueReply;pub use queue::QueueEnqueueRequest;pub use queue::QueueJobLifecycleWire;pub use queue::QueueJobStatusReply;pub use queue::QueueJobStatusRequest;pub use queue::QueueLeaseReply;pub use queue::QueueLeaseRequest;pub use queue::QueueLeasedJobWire;pub use queue::QueueMetricsReply;pub use queue::QueueMetricsRequest;pub use queue::QueueNackReply;pub use queue::QueueNackRequest;pub use queue::QueueReplicateOp;pub use queue::QueueReplicateReply;pub use queue::QueueReplicateRequest;pub use queue::QueueRequeueDeadLetterReply;pub use queue::QueueRequeueDeadLetterRequest;pub use queue::RecurringScheduleWire;pub use queue_autoscale::AutoscalePolicyWire;pub use queue_autoscale::MembershipAutoscalePolicyWire;pub use queue_autoscale::QueueAutoscalePolicyCommand;pub use raft::AppendEntries;pub use raft::AppendEntriesReply;pub use raft::EntryPayload;pub use raft::InstallSnapshot;pub use raft::InstallSnapshotReply;pub use raft::LogEntry;pub use raft::Membership;pub use raft::RaftRpc;pub use raft::RaftRpcReply;pub use raft::RequestVote;pub use raft::RequestVoteReply;pub use saga_journal::SagaJournalCommand;pub use two_phase::TwoPhaseAbortCommand;pub use two_phase::TwoPhasePrepareCommand;pub use two_phase_journal::TwoPhaseJournalCommand;
Modules§
- actor
- Cross-node actor messaging + directory wire types (cross-node-actors, cluster-routing).
- actor_
store - Actor workflow store wire types (actor-state-store).
- catalog
- Dynamic multi-Raft catalog replication over group 0 (Tier 2).
- client
- Client API wire types sent over
/client/wire(client-api, client-routing, read-consistency). - group
- Multi-Raft wire envelopes (write-sharding-multi-raft).
- group_
migrate - Cross-node Raft group migration wire types (write-sharding-multi-raft).
- join
- Cluster join handshake wire types over
/cluster/join(join-rpc, join-version-skew). - leave
- Cluster leave handshake wire types over
/cluster/leave(symmetric to join-rpc). - queue
- Job queue wire types (job-queue).
- queue_
autoscale - Queue autoscale policy metadata replicated through Meta-Raft / group 0.
- raft
- Raft peer-to-peer RPC wire types (wire-transport, membership-early).
- saga_
journal - Cross-shard saga journal metadata replicated through group 0 (Tier 2 v2).
- two_
phase - Cross-shard two-phase commit metadata replicated through each Raft group log.
- two_
phase_ journal - Cross-shard 2PC client journal metadata replicated through Meta-Raft (Tier 2).
Structs§
- LogId
- A position in the Raft log: the
(term, index)pair that uniquely identifies an entry. Ordering is lexicographic on(term, index), which is exactly Raft’s log “up-to-date” comparison (§5.4.1), soLogIdvalues can be compared directly instead of juggling two primitives. - LogIndex
- 1-based index into the Raft log.
- NodeId
- Stable identifier for a cluster node.
- Round
- A leader replication/heartbeat round, used to confirm leadership for
linearizable
ReadIndexreads (read-consistency). Monotonic per leader term. - Term
- Raft term (monotonic election epoch).
Enums§
- Codec
Error - Errors from encoding/decoding wire bodies.
Constants§
- MIN_
COMPATIBLE_ PROTOCOL_ VERSION - Oldest wire protocol this release accepts during rolling upgrades (N/N−1).
- PROTOCOL_
VERSION - Wire/protocol version negotiated on join (join-version-skew: hard reject on mismatch).
- WIRE_
CODEC - The wire codec in effect for this build:
"postcard"by default, or"json"when the dev-onlyjson-wirefeature is enabled (future-work-and-risks item 4). Surfaced so a node can log/advertise its wire format at startup.
Functions§
- decode
- Decode a value from JSON (dev-only
json-wirebuild). SeeWIRE_CODEC. - encode
- Encode a value as JSON (dev-only
json-wirebuild). SeeWIRE_CODEC. - protocol_
version_ compatible - Whether
gotis in the supported compatibility band[MIN..=PROTOCOL].