grav icon indicating copy to clipboard operation
grav copied to clipboard

Embedded decentralized message bus

Results 28 grav issues
Sort by recently updated
recently updated
newest added

Under high load, something like this can fail to find a reply: ``` pod.Send(jobMsg).WaitUntil(grav.Timeout(5), func(msg grav.Message) error { ... }) ``` It's unclear why, as another connected pod can indeed...

It would be nice to add more complex Pod type that can handle multiple message types. Pod would be like Actor

Having a MsgData interface would make it easier to create/send messages in one step, for example: ``` type MsgData interface { Data() []byte MsgType() string } ``` Could then allow...

enhancement
good first issue

Something to collect multiple pods, like in cases where you need to watch multiple message types and need to keep references to multiple pods. Something like: ``` pods := g.PodGroup()...

enhancement
good first issue

[Libp2p](https://libp2p.io/) is a networking stack and library for p2p protocols. It supports several transport, security, pubsub, and routing protocols. Grav could really benefit from supporting libp2p as a transport as...

Allow nodes to discover one another by querying a service mesh's control plane

discovery

When receiving a message via a transport, the transport should be able to ack it and show it's been sent to the local bus. As a bonus, it would be...

enhancement
transports

When using a non-default Message type, it's essential that incoming messages can be unmarshalled into the correct struct. User should be able to provide a function that, given the Message's...

transports

The HTTP transport uses a single pod for all incoming and outgoing messages, but more sophisticated transport plugins should use a seperate pod per connection. Both situations need to be...

transports

Grav should be able to use RabbitMQ as a transport.

transports