Scalable, extendable and less painful distributed systems for all.

Most software these days is social software – moving pieces in a larger ecosystem, from mobile phones to data centres. The cost of exposing and maintaining these integration points are still too expensive. Code refactoring is a common practice at most shops, but how often do we find stories for reworking communications infrastructure in sprint backlogs? A myriad of projects continue to reinvent the wheel with network specific code that often requires years of experience and knowledge of specs to get right. There’s a better way. But first…

What’s wrong with sockets?

Not everyone can write good network services. A strong developer profile with knowledge of I/O multiplexing, buffer management and protocols is required. APIs, socket options and error codes also aren’t portable, however high level languages tend to handle them very well. Most are limited to being locked in to 2 communication patterns: bi-directional or multicast, with lock step connection setup. This does not conform to the scalable data and work distribution patterns required by modern software and business needs.

Instant messaging for Apps

What is ZeroMQ [1]?

Broker – there’s no central „message queue“ or persistence, thus no Single Point of Failure (SPOF)

Admin – nothing to administer, other than your apps off course

Cost – BSD sockets API, easy to learn patterns and abstractions

Waste – light footprint, minimal allocations and system calls

Latency (almost) – designed from the ground up for minimal latency in the Financial Services industry