I am developing a JAVA based web application. The primary aim is to have inventory for products being sold on multiple websites called channels. We will act as manager for all these channels. What we need is:

  1. Queues to manage inventory updates for each channel.
  2. Inventory table which has a correct snapshot of allocation on each channel.
  3. Keeping Session Ids and other fast access data in a cache.
  4. Providing a facebook like dashboard(XMPP) to keep the seller updated asap.

The solutions i am looking at are postgres(our db till now in a synchronous replication mode), NoSQL solutions like Cassandra, Redis, CouchDB and MongoDB.

My constraints are:

  1. Inventory updates cannot be lost.
  2. Job Queues should be executed in order and preferably never lost.
  3. Easy/Fast development and future maintenance.

I am open to any suggestions. thanks in advance.

Edit
Report