/FsBunny

F# API for streaming over RabbitMQ

Primary LanguageF#OtherNOASSERTION

FsBunny Windows Build Mono/OSX build NuGet version

FsBunny implements a streaming API over RabbitMQ optimized for implementation of event-driven systems.

The core idea is that while there are many streams carrying many messages using many serializers, each stream is dedicated to a single type of message serialized using certain serializer.

It works under the assumptions that:

  • We never want to lose a message
  • The exchange + topic tells us the message type (as well as serialization format)
  • The consumer is long-lived and handles only one type of message
  • The consumer decides when to pull the next message of a queue
  • The publishers can be long- or short-lived and address any topic
  • We have multiple serialization formats and may want to add new ones easily

These assumptions may not be suitable in all scenarios, but they map extremely well to event-driven processing.