This is my first experience with messaging using Spring and ActiveMQ. Any help in designing the solution for the below problem will be appreciated. I have a number of processes. Each process gets its input from the previous' process' output queue. The input for the first process will be from the database. All these processes are also updating/reading the database while doing their processes. Since the queue size is very big, so performance is a major concern. I do not know if the application is supposed to be multi-threaded or Spring and ActiveMQ can be tuned to handle multiple messages concurrently. Another requirement is that at any point more processes can be introduced inbetween. This means that suppose processes 1 & 2 are running. The output Queue for process 1 is the input queue for process2. Suppose process 3 is introduced inbetween. Then output queue of p1 becomes input queue of P3 and output queue of P3 becomes input queue of P2. This add and remove of processes can be done by an administrator any time.
Any inputs on how to architect the solution for the above please, especially how can we make queues efficient on performance basis. Maybe we should spawn multiple queues instead of just one. Any clues???