Skip to content
/ grav Public
forked from suborbital/grav

Embedded decentralized message bus

License

Notifications You must be signed in to change notification settings

agilebits/grav

 
 

Repository files navigation

Grav has been deprecated. You can use the new bus package, which is a drop-in continuation of this project. You can find the docs for this deprecated project in this repo.

Grav is an embedded distributed messaging library for Go applications. Grav allows interconnected components of your system to communicate effectively in a reliable, asynchronous manner. HTTP and RPC are hard to scale well in modern distributed systems, so we created Grav to add a performant and resilient messaging system to various distributed environments.

Grav's main purpose is to act as a flexible abstraction that allows your application to discover and communicate using a variety of protocols without needing to re-write any code.

Grav messages can be sent in-process (such as between Goroutines), or to other nodes via transport plugins such as Websocket and NATS. Transport plugins extend the core Grav bus to become a networked distributed messaging system. Grav nodes can also be configured to automatically discover each other using discovery plugins. Grav can operate as a decentralized mesh or integrate with centralized streaming platforms, making it extremely flexible.

Copyright Suborbital Contributors 2021.

About

Embedded decentralized message bus

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 99.8%
  • Makefile 0.2%