Fork me on GitHub

Ice Services


Pub-Sub Event Distribution Service

One to Many

IceStorm is a publish-subscribe event distribution service that helps you create push applications. Your Ice client (the publisher) sends a request to a topic managed by IceStorm, and IceStorm delivers this request to all the subscribers (Ice objects) that you registered with this topic. These requests are regular Ice oneway requests, and correspond to the events distributed by IceStorm.

Ice Storm

Full Decoupling

With IceStorm, your publisher just sends requests to IceStorm topics, and is completely insulated from the subscribers to these topics. These subscribers can be very numerous, and some may be slow or unresponsive - this won't affect your publisher in any way. Likewise, IceStorm subscribers are in direct communication with only IceStorm and don't know which publishers send them events through IceStorm.


IceStorm can operate in a high-availability mode where a number of IceStorm servers form a replica group. If a server goes down, IceStorm automatically re-routes communication to the servers that are still running, and when a server comes back up, it automatically resumes event delivery via that server without any manual intervention.

Persistent Subscribers

Topic subscriptions can be made persistent, so you don't need to re-register your subscribers after a restart. IceStorm also provides a configurable mechanism to deal with stale subscriptions. For example, if a subscriber becomes unreachable, IceStorm can automatically unregister this subscriber.

No Event Persistence

IceStorm is a simple, high-performance pub-sub service. IceStorm does not provide an option to store the events it distributes.