Distributed Publish/Subscribe (Pub/Sub) Event System

  •        86

The Web Solutions Platform (WSP) event system is a general-purpose distributed publish/subscribe event system designed for high performance and low latency. Publish/subscribe is a common communication pattern though there are many variations to solve different scenario require...




Related Projects

ESB Toolkit Extensions

ESB Extensions is a solution containing multiple .Net Projects and artifacts: Unit Tests, Itineraries, Business Rules, Binding Files, and C# Class Libraries. This solution is geared towards extending/wrapping the current Microsoft ESB 2.0 toolkit and components.

BizTalk ESB Toolkit Enterprise Library machine.config Toggler

This tool provides an instant on/off switch for the enterpriseLibrary.ConfigurationSource changes that the BizTalk ESB Toolkit makes to machine.config.

BizUnit - Framework for Automated Testing of Distributed Systems

The adoption of an automated testing strategy is fundamental in reducing the risk associated with software development projects, it is key to ensuring that you deliver high quality software. Often, the overhead associated with developing automated tests is seen as excessive an...

Atomix - Scalable, fault-tolerant distributed systems protocols and primitives for the JVM

Atomix is an event-driven framework for coordinating fault-tolerant distributed systems built on the Raft consensus algorithm. It provides the building blocks that solve many common distributed systems problems including group membership, leader election, distributed concurrency control, partitioning, and replication.


Keystroke ESB.NET is a lightweight distributed Enterprise Service Bus with federation support. Featuring WCF and WWF integration, whilst also supporting WSE3 and Raw HTTP, ensuring backwards compatibility, ESB.NET is a flexible and configurable service host & business level messa

kit - A standard library for microservices.

Go kit is a programming toolkit for building microservices (or elegant monoliths) in Go. We solve common problems in distributed systems and application architecture so you can focus on delivering business value.Go has emerged as the language of the server, but it remains underrepresented in so-called "modern enterprise" companies like Facebook, Twitter, Netflix, and SoundCloud. Many of these organizations have turned to JVM-based stacks for their business logic, owing in large part to libraries and ecosystems that directly support their microservice architectures.

NSQ - A realtime distributed messaging platform in Go

NSQ is a realtime distributed messaging platform designed to operate at scale, handling billions of messages per day. It promotes distributed and decentralized topologies without single points of failure, enabling fault tolerance and high availability coupled with a reliable message delivery guarantee. It scales horizontally, without any centralized brokers. Built-in discovery simplifies the addition of nodes to the cluster.

micro - A microservice toolkit for distributed systems development

Micro is a microservice toolkit. Its purpose is to simplify distributed systems development.Check out go-micro if you want to start writing services in Go now or ja-micro for Java. Examples of how to use micro with other languages can be found in examples/sidecar.

Jepsen - A framework for distributed systems verification, with fault injection

Jepsen is a Clojure library. A test is a Clojure program which uses the Jepsen library to set up a distributed system, run a bunch of operations against that system, and verify that the history of those operations makes sense. Jepsen has been used to verify everything from eventually-consistent commutative databases to linearizable coordination systems to distributed task schedulers. It can also generate graphs of performance and availability, helping you characterize how a system responds to different faults.

tavern-redis - Redis-based distributed PubSub for Tavern.

Redis-based distributed PubSub for Tavern.

DubSub - Distributed PubSub with Akka Cluster

Distributed PubSub with Akka Cluster

kraken - Distributed Pubsub Server for Realtime Apps

Distributed Pubsub Server for Realtime Apps

pubsubd - Distributed PubSub using Node.js

Distributed PubSub using Node.js

go-longpoll - PubSub queuing with long-polling subscribers (not bound to http)

The Go library go-longpoll (package longpoll) provides an implementation of the long-polling mechanism of the PubSub pattern. Although the primary purpose of the library is to aid the development of web applications, the library provides no specific web handlers and can be used in other distributed applications.Long polling is a technique to notify client applications about updates on the server. It is often used in writing web application as a substitute for the push technique, however can be used in other distributed applications.

minpubsub - A minimal PubSub based distributed message queue model with multiple backend persistence modes - InMemory, SQLite, MySQL, MongoDB

A minimal PubSub based distributed message queue model with multiple backend persistence modes - SQLite, MySQL, MongoDB.minpubsub is an experimental project and a work in progress. It is not yet ready to be used in production environment.

rDSN - Robust Distributed System Nucleus (rDSN) is an open framework for quickly building and managing high performance and robust distributed systems

Robust Distributed System Nucleus (rDSN) is a framework for quickly building robust distributed systems. It has a microkernel for pluggable components, including applications, distributed frameworks, devops tools, and local runtime/resource providers, enabling their independent development and seamless integration. The project was originally developed for Microsoft Bing, and now has been adopted in production both inside and outside Microsoft.The core of rDSN is a service kernel with which we can develop (via Service API and Tool API) and plugin lots of different application, framework, tool, and local runtime modules, so that they can seamlessly benefit each other. Here is an incomplete list of the pluggable modules.

EPICS Version 4

EPICS Version 4 is a software toolkit for writing control systems

compass-core - Automating Distributed System Deployment to Baremetal Resources

As a platform-independent deployment automation system, Compass simplifies the complex and error-prone deployment process of various distributed systems such as Openstack, Ceph and so on. It dramatically reduces the time of datacenter server management. Compass, designed with an extensible architecture, can be easily integrated with most of the popular automation tools (Cobbler, Chef, Ansible) and allows third-parties (vendors) plugins for hardware discovery.ii. Dedicatedly create a virtual environment for your development. You can use virtualenvwrapper to help you manage your virtual environment.

raft - Golang implementation of the Raft consensus protocol

raft is a Go library that manages a replicated log and can be used with an FSM to manage replicated state machines. It is a library for providing consensus.The use cases for such a library are far-reaching as replicated state machines are a key component of many distributed systems. They enable building Consistent, Partition Tolerant (CP) systems, with limited fault tolerance as well.


Conduit is an Actor Model based framework for developing distributed services. The goal of Conduit is to make building scalable and fault tolerant services a breeze by promoting an Event Driven Architecture (EDA) sitting on top of an Enterprise Service Bus (ESB).