Skip to content

andyollylarkin/watermill-net

Repository files navigation

Watermill Net Pub/Sub

This is net (tcp, udp, unix socket) Pub/Sub for the Watermill project.

All Pub/Sub implementations can be found at https://watermill.io/pubsubs/.

Watermill is a Go library for working efficiently with message streams. It is intended for building event driven applications, enabling event sourcing, RPC over messages, sagas and basically whatever else comes to your mind. You can use conventional pub/sub implementations like Kafka or RabbitMQ, but also HTTP or MySQL binlog if that fits your use case.

Documentation: https://watermill.io/

Getting started guide: https://watermill.io/docs/getting-started/

Issues: https://github.com/ThreeDotsLabs/watermill/issues

Characteristics

  • ConsumerGroups
  • ExactlyOnceDelivery
  • GuaranteedOrder
  • Persistent

Contributing

All contributions are very much welcome. If you'd like to help with Watermill development, please see open issues and submit your pull request via GitHub.

Implement new transport

Currently implemented tcp4 transport. For implementing additional transport see Connection interface and pkg/connection/tcp4Connection as example.

Support

If you didn't find the answer to your question in the documentation, feel free to ask us directly!

Please join us on the #watermill channel on the Gophers slack: You can get an invite here.

License

MIT License

TODO

  • Transport wrapper for reconnection
  • CI pipeline
  • CI linting
  • CI tests coverage
  • More tests for subscriber and publisher