[][src]Crate blip

A crate 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

  • full: Enables all optional features.
  • cache: Enables the cache service.

References

Modules

cluster

A distributed membership protocol based closely on rapid.

overlay

Batteries-included grpc service mesh.

service

Ready-to-use mesh-aware services.

Structs

Member

A cluster member.

Mesh

An unstarted member of a blip mesh network.

MultiNodeCut

An accepted view-change proposal. Cloning this is cheap, as membership information is stored as refcounted slices.

Subscription

A subscription to accepted view-change proposals.

Traits

ExposedService

A MeshService that can be converted into a Service to be served over grpc.

MeshService

A service that has access to accepted membership view-change proposals.

Attribute Macros

async_trait

A re-export of async_trait for convenience.