[−][src]Crate blip
A Rust framework for writing fast and highly resilient in-process gRPC service meshes.
Overview
blip
provides an implementation of distributed membership based on rapid, exposed
as a gRPC service. Groups of servers become aware of each other through the membership
protocol, and any given member may expose its own metadata or linked services through
the same backing gRPC server.
In essence, this crate provides a membership list with strong consistency semantics (as opposed to weakly consistent protocols like SWIM), distributed fault detection, and grpc routing.
Service Discovery
blip
is designed to build heterogenous meshes. As such, members may expose arbitrary
(immutable) key-value metadata when they join a mesh, which can be used for the purpose
of service discovery.
Sharding and State
blip
does not enforce any invariants with regard to state held by members of a mesh.
For maximal flexibility, state and sharding are deferred to implementations of member
services.
Feature Flags
simulation
: Enables the simulation network for testing purposes.
References
Modules
cluster | A distributed membership protocol based closely on rapid. |
overlay | Batteries-included grpc service mesh. |
simulation | feature="simulation" Fault-simulated networks for writing bulletproof distributed protocols. |
Structs
Member | A cluster member. |
Mesh | An unstarted member of a blip mesh network. |
MultiNodeCut | An accepted view-change proposal. |
Rejoin | Rejoin the existing cluster through random healthy members. |
Subscription | A subscription to accepted view-change proposals. |
Traits
MeshService | A trait that allows individual services access to any accepted membership view-change proposals. |
Attribute Macros
async_trait | A re-export of [async_trait][async_trait::async_trait] for convenience. |