StackShareStackShare
Follow on
StackShare

Discover and share technology stacks from companies around the world.

Follow on

© 2025 StackShare. All rights reserved.

Product

  • Stacks
  • Tools
  • Feed

Company

  • About
  • Contact

Legal

  • Privacy Policy
  • Terms of Service
  1. Stackups
  2. Utilities
  3. Background Jobs
  4. Message Queue
  5. Event Store vs RabbitMQ

Event Store vs RabbitMQ

OverviewDecisionsComparisonAlternatives

Overview

RabbitMQ
RabbitMQ
Stacks21.8K
Followers18.9K
Votes558
GitHub Stars13.2K
Forks4.0K
Event Store
Event Store
Stacks69
Followers82
Votes1

Event Store vs RabbitMQ: What are the differences?

Event Store vs RabbitMQ

Introduction:

Event Store and RabbitMQ are both popular messaging systems used in applications for managing and processing messages. While they have some similarities, there are key differences between the two that make them suitable for different use cases. This comparison aims to highlight and explain those differences in detail.

  1. Persistence and Data Storage: Event Store is designed specifically for event sourcing, providing durable and reliable event storage. It allows for the storage and retrieval of events in the order they occurred. On the other hand, RabbitMQ does not store the messages it handles by default, so it does not provide built-in data persistence.

  2. Message Distribution Patterns: RabbitMQ is a powerful message broker that supports various messaging patterns, such as publish-subscribe and request-response. It allows for flexible message routing and enables easy integration between different systems. In contrast, Event Store focuses primarily on event sourcing and storage, and does not provide the same level of flexibility in message distribution patterns.

  3. Event Driven Architecture: Event Store is tailored towards event-driven architecture, allowing developers to capture and store a complete history of events. It supports domain-driven design and event sourcing, which can be beneficial for complex business processes and auditing. RabbitMQ, on the other hand, is more focused on general-purpose messaging and does not provide the same level of support for event sourcing.

  4. Message Ordering: Event Store guarantees the strict ordering of messages within a single stream, ensuring consistency and accuracy in event processing. It provides the ability to replay events and rebuild state based on the event history. RabbitMQ, by default, does not guarantee strict message ordering and may process messages out of order if multiple consumers are involved.

  5. Message Persistence: Event Store stores events in a append-only manner, which means once an event is stored, it cannot be modified or deleted. This ensures data integrity and auditability, especially in regulated industries. RabbitMQ, on the other hand, allows messages to be consumed and removed from the system once they are processed, which may not provide the same level of data integrity requirements in some scenarios.

  6. Tooling and Community Support: RabbitMQ is a widely adopted messaging system with a large community, offering various tools, integrations, and plugins. It has extensive documentation and a rich ecosystem that supports different programming languages and frameworks. Event Store, while still popular, has a relatively smaller community and a more specialized focus on event sourcing and storage.

In summary, Event Store and RabbitMQ have distinct differences in terms of persistence, message distribution patterns, event-driven architecture support, message ordering, message persistence, and community support. These differences determine their suitability for different use cases and should be considered when choosing between the two for messaging needs.

Share your Stack

Help developers discover the tools you use. Get visibility for your team's tech choices and contribute to the community's knowledge.

View Docs
CLI (Node.js)
or
Manual

Advice on RabbitMQ, Event Store

viradiya
viradiya

Apr 12, 2020

Needs adviceonAngularJSAngularJSASP.NET CoreASP.NET CoreMSSQLMSSQL

We are going to develop a microservices-based application. It consists of AngularJS, ASP.NET Core, and MSSQL.

We have 3 types of microservices. Emailservice, Filemanagementservice, Filevalidationservice

I am a beginner in microservices. But I have read about RabbitMQ, but come to know that there are Redis and Kafka also in the market. So, I want to know which is best.

933k views933k
Comments
André
André

Technology Manager at GS1 Portugal - Codipor

Jul 30, 2020

Needs adviceon.NET Core.NET Core

Hello dear developers, our company is starting a new project for a new Web App, and we are currently designing the Architecture (we will be using .NET Core). We want to embark on something new, so we are thinking about migrating from a monolithic perspective to a microservices perspective. We wish to containerize those microservices and make them independent from each other. Is it the best way for microservices to communicate with each other via ESB, or is there a new way of doing this? Maybe complementing with an API Gateway? Can you recommend something else different than the two tools I provided?

We want something good for Cost/Benefit; performance should be high too (but not the primary constraint).

Thank you very much in advance :)

461k views461k
Comments
mediafinger
mediafinger

Feb 13, 2019

ReviewonKafkaKafkaRabbitMQRabbitMQ

The question for which Message Queue to use mentioned "availability, distributed, scalability, and monitoring". I don't think that this excludes many options already. I does not sound like you would take advantage of Kafka's strengths (replayability, based on an even sourcing architecture). You could pick one of the AMQP options.

I would recommend the RabbitMQ message broker, which not only implements the AMQP standard 0.9.1 (it can support 1.x or other protocols as well) but has also several very useful extensions built in. It ticks the boxes you mentioned and on top you will get a very flexible system, that allows you to build the architecture, pick the options and trade-offs that suite your case best.

For more information about RabbitMQ, please have a look at the linked markdown I assembled. The second half explains many configuration options. It also contains links to managed hosting and to libraries (though it is missing Python's - which should be Puka, I assume).

159k views159k
Comments

Detailed Comparison

RabbitMQ
RabbitMQ
Event Store
Event Store

RabbitMQ gives your applications a common platform to send and receive messages, and your messages a safe place to live until received.

It stores your data as a series of immutable events over time, making it easy to build event-sourced applications. It can run as a cluster of nodes containing the same data, which remains available for writes provided at least half the nodes are alive and connected.

Robust messaging for applications;Easy to use;Runs on all major operating systems;Supports a huge number of developer platforms;Open source and commercially supported
Guaranteed writes; High availability; Projections; Multiple client interfaces; Optimistic concurrency checks; Subscribe to streams with competing consumers; Great performance that scales; Multiple hosting options; Commercial support plans; Immutable data store; Atom subscriptions
Statistics
GitHub Stars
13.2K
GitHub Stars
-
GitHub Forks
4.0K
GitHub Forks
-
Stacks
21.8K
Stacks
69
Followers
18.9K
Followers
82
Votes
558
Votes
1
Pros & Cons
Pros
  • 235
    It's fast and it works with good metrics/monitoring
  • 80
    Ease of configuration
  • 60
    I like the admin interface
  • 52
    Easy to set-up and start with
  • 22
    Durable
Cons
  • 9
    Too complicated cluster/HA config and management
  • 6
    Needs Erlang runtime. Need ops good with Erlang runtime
  • 5
    Configuration must be done first, not by your code
  • 4
    Slow
Pros
  • 1
    Trail Log
Integrations
No integrations available
.NET
.NET
SQLite
SQLite
MySQL
MySQL

What are some alternatives to RabbitMQ, Event Store?

MongoDB

MongoDB

MongoDB stores data in JSON-like documents that can vary in structure, offering a dynamic, flexible schema. MongoDB was also designed for high availability and scalability, with built-in replication and auto-sharding.

MySQL

MySQL

The MySQL software delivers a very fast, multi-threaded, multi-user, and robust SQL (Structured Query Language) database server. MySQL Server is intended for mission-critical, heavy-load production systems as well as for embedding into mass-deployed software.

PostgreSQL

PostgreSQL

PostgreSQL is an advanced object-relational database management system that supports an extended subset of the SQL standard, including transactions, foreign keys, subqueries, triggers, user-defined types and functions.

Kafka

Kafka

Kafka is a distributed, partitioned, replicated commit log service. It provides the functionality of a messaging system, but with a unique design.

Microsoft SQL Server

Microsoft SQL Server

Microsoft® SQL Server is a database management and analysis system for e-commerce, line-of-business, and data warehousing solutions.

SQLite

SQLite

SQLite is an embedded SQL database engine. Unlike most other SQL databases, SQLite does not have a separate server process. SQLite reads and writes directly to ordinary disk files. A complete SQL database with multiple tables, indices, triggers, and views, is contained in a single disk file.

Cassandra

Cassandra

Partitioning means that Cassandra can distribute your data across multiple machines in an application-transparent matter. Cassandra will automatically repartition as machines are added and removed from the cluster. Row store means that like relational databases, Cassandra organizes data by rows and columns. The Cassandra Query Language (CQL) is a close relative of SQL.

Memcached

Memcached

Memcached is an in-memory key-value store for small chunks of arbitrary data (strings, objects) from results of database calls, API calls, or page rendering.

MariaDB

MariaDB

Started by core members of the original MySQL team, MariaDB actively works with outside developers to deliver the most featureful, stable, and sanely licensed open SQL server in the industry. MariaDB is designed as a drop-in replacement of MySQL(R) with more features, new storage engines, fewer bugs, and better performance.

RethinkDB

RethinkDB

RethinkDB is built to store JSON documents, and scale to multiple machines with very little effort. It has a pleasant query language that supports really useful queries like table joins and group by, and is easy to setup and learn.

Related Comparisons

Bootstrap
Materialize

Bootstrap vs Materialize

Laravel
Django

Django vs Laravel vs Node.js

Bootstrap
Foundation

Bootstrap vs Foundation vs Material UI

Node.js
Spring Boot

Node.js vs Spring-Boot

Liquibase
Flyway

Flyway vs Liquibase