Tellago announces Hermes: A publish-subscribe messaging engine based on HTTP and MongoDB

Today Tellago is very happy to announce the open source release of Hermes, a new publish-subscribe messaging technology based on MongoDB and RESTful Services.

Publish-subscribe messaging mechanisms are a fundamental component of distributed systems. The notion of pub-sub has been around since the very early days of computer science and has become increasingly popular in the last few years with the emergence of internet messaging infrastructures such as Twitter, Facebook, Google’s PubSubHubHub or RSS cloud.

Despite of the popularity of these types of messaging, we still don’t have a native pub-sub infrastructure in the Windows platform. Products like BizTalk Server have enabled pub-sub mechanisms in a very traditional way as part of its infrastructure but haven’t provided a foundation that can be seamlessly used by any .NET application.

Introducing Hermes

Hermes was born as part of one of our recent projects at Tellago in which we needed to provide a high performance, highly interoperable pub-sub infrastructure that could be used in a variety of event-based systems. After our initial release, we decided to refactor and make this technology available to the developer community in the form of an open source package.

Hermes Model

Hermes enables a very simple model to implement the foundation of pub-sub applications. The following figure illustrates the basic of Hermes model.

 Hermes[1]

The current version of Hermes includes the following components:

  • Topics: Topics are a name that categorizes a specific piece of information. Examples of topics could be: Errors, News, Alerts, etc.
  • Publishers: A publisher is an entity that publishes information about a specific topic
  • Subscribers: A subscriber is an entity that is interested on certain information about a specific topic. Subscribers interact with Hermes by creating a subscription which is nothing but filter criteria over a specific topic.
  • Subscriptions: The easiest way to define a subscription is Subscription= Topic + Filter. As simple as that, a subscription gets created by specifying a filter expression over a specific topic. Subscriptions examples could, Critical Errors, or Economy News.
  • Filters: Filters are Boolean expressions that are executed against the messages for a specific topic or topic group.
  • Topic Groups: Topic groups are entities that group different topics under a single name. This allows publishers to distribute information that matches a variety of topics.

In order to enable the interaction between publishers and subscribers Hermes enables a series of APIs 100% based on the concepts of the Representational State Transfer (REST).

  • Subscription Management API: This API will be used by publishers and subscribers to create, renew and manage the different topics and topic groups.
  • Publisher API: Using this API, authorized applications will publish data to specific topics.
  • Subscriber API: This API will be used by subscriber applications to retrieve information from specific subscriptions.

Infrastructure

Hermes was built under a very simple set of principles: simplicity, interoperability and high scalability. We achieved simplicity and interoperability by exposing the Hermes infrastructure through a set of very lightweight RESTFul Service APIs built using the upcoming WCF. In order to achieve our expected levels of scalability we decided to rely on MongoDB as the fundamental message repository for Hermes. The used of MongoDB made it extremenly easy to store, partition and index high volumes of messages for a large number of topics and subscriptions.

Roadmap?

Today’s release is just a small glimpse of what we have planed for Hermes. We have been prototipying a lot of ideas and are also planning to incorporate some of the community feedback. Here are some of the things you can expect to see in Hermes soon:

  • Management Portal: We are planning on enabling the core management capabilities of Hermes through a web interface to make it easier for IT professional to interact with the system.
  • Cloud deployment: Wouldn’t it be cool if we could have the same messaging infrastructure working on-premise and on the cloud? We are planning on enabling Hermes infrastructure on Windows Azure and Amazon EC2.
  • New messaging patterns: We are planning to incorporate new messaging patterns that makes it even easier for applications to interact with each other using pub-sub mechanisms.

How to get Hermes?

You can get Hermes bits and source code in our Github repository. Please give it a try to send us some feedback.

The team behind Hermes is full of very talented engineers like Silvio Massari, Jose Romaniello, Gustavo Machado and Vishal Mody.

Comments

# re: Tellago announces Hermes: A publish-subscribe messaging engine based on HTTP and MongoDB

What about licensing?

Tuesday, July 12, 2011 9:42 AM by Mike Chaliy

# re: Tellago announces Hermes: A publish-subscribe messaging engine based on HTTP and MongoDB

BSD, completely open source :)

JR

Tuesday, July 12, 2011 10:15 AM by gsusx

# re: Tellago announces Hermes: A publish-subscribe messaging engine based on HTTP and MongoDB

This looks great.  A few things:

-Do you have install instructions and steps for setup?  I'm sure I can figure it out but lack of this makes it hard to test drive.

-Similar question about availability of Installers/Binaries for the whole stack or at least string guidance in the form of scripts...  One of the big advantages of MSMQ is it is installed with windows and getting clustering setup is well-known and easy.  Without all this done presecriptively it becomes a large operational burden.  We have similar issues with RabbitMQ and getting everything configured correctly for failover, etc.

Tuesday, July 12, 2011 2:58 PM by Scott Prugh

# Hermes ??? A new open source alternative for doing pub/sub over Http - Bilim-Teknoloji | Pozitive Positive Pozitive.NeT

Pingback from  Hermes ??? A new open source alternative for doing pub/sub over Http - Bilim-Teknoloji | Pozitive Positive Pozitive.NeT

# re: Tellago announces Hermes: A publish-subscribe messaging engine based on HTTP and MongoDB

Isn't AppFabric bringing messaging and pub/sub to the OS, even topic-based pub/sub?

Tuesday, July 12, 2011 7:03 PM by Robert E

# re: Tellago announces Hermes: A publish-subscribe messaging engine based on HTTP and MongoDB

Scott,

 Thanks for the insightful feedback. The installer should be out on the website in the next few hrs. We wanted to start getting feedback and putting some very early bits out there.

 We will take your recommendation of putting together a guidance for clustering and scaling out Hermes. Essentially, we are leveraging MongoDB sharding mechanisms.

 JR

Tuesday, July 12, 2011 7:48 PM by gsusx

# re: Tellago announces Hermes: A publish-subscribe messaging engine based on HTTP and MongoDB

Robert,

  The Windows Azure AppFabric is included a topic based model which is somewhat similar to Hermes but there is nothing available yet for the on-premise side. Eventually the Windows Server AppFabric will include those same capabilities on-premise and there will be some overlap with Hermes.

 We do have a lot of cool things planned on the roadmap in terms or search and querying that are very different from the Azure AppFabric model.

JR

Tuesday, July 12, 2011 7:51 PM by gsusx

# Hermes: an open source implementation of Publish/Subscribe engine « Silvio Massari's blog

Pingback from  Hermes: an open source implementation of Publish/Subscribe engine « Silvio Massari's blog

# re: Tellago announces Hermes: A publish-subscribe messaging engine based on HTTP and MongoDB

Congrats guys, exciting to see this. Web API loves you :-)

Wednesday, July 13, 2011 11:39 AM by Glenn Block

# Is BizTalk Server Going Away At Some Point? Yes. Dead? Nope. « Richard Seroter's Architecture Musings

Pingback from  Is BizTalk Server Going Away At Some Point?  Yes.  Dead?  Nope. « Richard Seroter's Architecture Musings

# Is BizTalk Server Going Away At Some Point? Yes. Dead? Nope. - Bilim-Teknoloji | Pozitive Positive Pozitive.NeT

Pingback from  Is BizTalk Server Going Away At Some Point?  Yes.  Dead? Nope. - Bilim-Teknoloji | Pozitive Positive Pozitive.NeT

# Hermes ??? A new open source alternative for doing pub/sub over Http - Technology | Zeytin.Net

Pingback from  Hermes ??? A new open source alternative for doing pub/sub over Http - Technology  | Zeytin.Net

# Is BizTalk Server Going Away At Some Point? Yes. Dead? Nope. - Technology | Zeytin.Net

Pingback from  Is BizTalk Server Going Away At Some Point?  Yes.  Dead? Nope. - Technology  | Zeytin.Net

# re: Tellago announces Hermes: A publish-subscribe messaging engine based on HTTP and MongoDB

Hi,

Can you give me the exact location of Hermes installer.

Thanks,

Dave

Wednesday, August 31, 2011 11:45 AM by Dave

# re: Tellago announces Hermes: A publish-subscribe messaging engine based on HTTP and MongoDB

Thanks for sharing such useful information. I think this is really a very nice post. Thanks for the great content!

Friday, September 30, 2011 10:00 AM by flash template

# re: Tellago announces Hermes: A publish-subscribe messaging engine based on HTTP and MongoDB

Tellago is very happy to announce the open source release of Hermes, a new publish-subscribe messaging technology based on MongoDB and RESTful Services.

Saturday, October 06, 2012 12:59 AM by buy research paper

# re: Tellago announces Hermes: A publish-subscribe messaging engine based on HTTP and MongoDB

Publish-subscribe messaging mechanisms are a fundamental component of distributed systems. The notion of pub-sub has been around since the very early days of computer science and has become increasingly popular in the last few years with the emergence of internet messaging infrastructures such as Twitter, Facebook,

Saturday, October 06, 2012 1:05 AM by buy research paper online

# re: Tellago announces Hermes: A publish-subscribe messaging engine based on HTTP and MongoDB

For Information!!!Hermes provides a solid, simple, interoperable and highly scalable infrastructure for enabling publish-subscribe messaging in distributed applications. Using Hermes, applications can publish and subscribe to heterogeneous data sets using a very simple HTTP interfaces.

Saturday, October 06, 2012 1:14 AM by thesis writing

# re: Tellago announces Hermes: A publish-subscribe messaging engine based on HTTP and MongoDB

Negotiations fail to reach conclusion amid rows and adjournment caused by lack of agreement on poorly worded texts

Monday, December 10, 2012 3:43 PM by jathtfmpmm@gmail.com