ZeroMQ
A Whole Bunch of Awesome
[C# Edition]

Ashic Mahtab
@ashic
http://www.heartysoft.com
ashic@heartysoft.com
About me
• Do tech stuff. Play about with distributed, scalable systems.
Messaging. DDD. CQRS. Event Sourcing.
• Mainly .NET. Like F#, Haskell, Erlang, CSP, maybe even Scala…Ooh
look…shiny!!
• ASP.NET MVP since 2009, moderator of asp.net
• Oh yeah, and ZeroMQ.
• London ZeroMQ User Group [ZeroMQLondon]
• Lifelong student…(Where does this learning s@$£ end!!)
Code:
https://github.com/ashic/0MQOredev2013
Messaging
Message Queues
ZeroMQ
Contexts - Sockets
Show Me Ze Codez
Client - Server
• Single Server – Multi Client
• Synchronous Server (blech!)
• Messages get “queued” 

1. Request
Client

Server
2. Response
Pub - Sub
• Topic Based Pub Sub
• Binary prefix based subscriptions
• Typical pub-sub problems apply
To Ze Cloudzzzz
• Use Push Pull
• Source enqueues tasks
• Workers work
• Results are collected in Drain

Source

Worker

Worker

Drain

Worker
Multi Server, Multi Client
• What it says on the tin
Client

Client

Client

Broker

Worker

Worker
Benefits
Drawbacks
Questions?
Thank You.

ZeroMQ at Oredev 2013