Embedded decentralized message bus
Grav will now fall back to raw data when the incoming message is not in the expected format.
Grav Beta-5 introduces a number of new abilities—Grav instances can now withdraw from the mesh, self-identify as belonging to a group, broadcast capabilities, and tunnel messages to other Grav instances that have broadcasted certain capabilities.
Grav 0.4.2 brings a new Kafka bridge transport to allow for Grav-over-Kafka!
Grav Beta-4.1 improves bridge transport plugins by ensuring only connected topics get sent to the bridge connection.
Grav Beta-4 brings changes to Transport plugins, allowing two types of Transport; mesh and bridge. The first bridge transport is a NATS plugin, which is included in this release.
Grav Beta-3.3 brings some small internal changes and makes the MsgBuffer
type public, which can be useful for keeping a list of most recent messages available for access.
This is a patch release to fix a concurrent-write issue with the Websocket Transport plugin that could cause a panic in rare cases.
This release addresses a panic in the Websocket Transport when a connection fails to Dial.
This release re-imagines Transport and Discovery plugins to make them easier than ever to build. Grav now keeps track of state on behalf of the plugins, making them "stateless". This release does not contain any breaking changes.
This release also includes the new Grav guide!
This release contains some big improvements to the ergonomics of the Grav API. It is a breaking change.
The big update is with how message replies and timeouts are handled.
Methods that previously took a timeout now have an *Until
variant instead such that timeouts are completely optional.
What was previously called MessageTicket
is now called MsgReceipt
and has become a "smart" type that is created whenever a message is sent. A receipt is an extension of the pod that sent the original message, and methods on this type allow for receiving replies to the sent message. For example:
pod.Send(msg).WaitOn(func(msg Message) {
// get your reply here!
})
WaitUntil
and OnReply
(async variant) are also available.