The RabbitMQ Message Broker is the heart of the Sepia architecture. It routes all event messages from authors to recipients. The RabbitMQ Message Broker is implemented by RabbitMQ. RabbitMQ is a widely deployed open source message broker and completely independent from the Eiffel community. In other words, there is no Eiffel specific message broker implementation. Instead, Sepia lists a small number of requirements on RabbitMQ servers and clients.
The RabbitMQ Message Broker SHALL use RabbitMQ version 3.0.0 or later.
Note that Sepia places no requirements on deployment architecture (e.g. distributed or not), authentication enforcement or exchange configuration. These aspects of the message broker are up to the demands in each specific case.
eiffel.<family>.<type>.<tag>.<domainid>
, where:
family
is the non-empty name of a group of Eiffel events to which the current event belongs. The families have not been defined in Sepia but may be in the future. Implementations may choose to use a fixed string in this field.type
is the type of the published Eiffel event (i.e. its meta.type
member), e.g. EiffelArtifactCreatedEvent.tag
is an implementation-specific tag. It can be any non-empty string but must not contain a period.domainid
is the non-empty string representing the domain the event applies to. It corresponds to the meta.source.domainId
member of an Eiffel event.Tutorials for creating RabbitMQ clients are available for multiple languages. These tutorials are highly recommended, as they explain concepts such as routing, exchanges, producers, consumers and queues.