I would like to implement (in c#) a distributed and concurrent message queue. I am well aware that there are implementations and some source code available (such as RhinoQueue, RabbitMQ, …).
What I am interested in, is some papers or other literature that describe various algorithms behind a reliable and durable message queue (how the data should be partitioned, propagated, eventual consistency is ensured…).
Take a look at ActiveMQ by Apache. It May help. In addition, take a look at this question at stackexchange.