Exploratory project implementing different types of message router (incl content and context)
- A simulation client randomly orders a product at a random time interval. The client submits orders to an order queue.
- A content based router listens to the order queue and forwards the orders to either product specific queues for high volume products or a general queue for all others.
- Workers listen to the product queues and print the orders (wiretaps).
- A simulation client randomly orders a product at a random time interval. The client submits orders to an order queue.
- A content router uses a consistent hashing function to distribute the orders to N queues.
- Workers listen to the product queues and print the orders (wiretaps).
- A simulation client randomly orders a product at a random time interval. The client submits orders to an order queue.
- A content router uses a configuration store to distribute the orders to N queues.
- Workers listen to the product queues and print the orders (wiretaps).
- Each time a worker is added it updates the configuration store to notify the dynamic router that it can receive messages matching a specific pattern.
- Implement basic content based message router [EIP p78]
- Extend to explore consistent hashing to distribute to work queues
- Explore pro's and con's of hard-coded hashing functions for scaling / distribution
- Follow on - Distributed Hash Ring
- http://michaelnielsen.org/blog/consistent-hashing/
- https://arxiv.org/pdf/1406.2294.pdf (Jump Consistent Hashing)