Search code examples
oraclequeueoracle-aqoracle-streams

Is Oracle AQ/Streams of any use in my situation?


I'm writing a workflow system that is driven entirely at each step by explicit human interaction. That is, a task is assigned to a person, that person selects from a few limited options {approve, reject, forward}, and then it is either sent along to the next person or terminated.

Just curious if Oracle Streams/AQ has anything to offer over flat tables managed by regular web application code. The amount of processing after each action is fairly limited and the volume is not terribly high, so there's not really a need to throttle things by throwing them into a queue. What are some of the benefits of introducing a queue structure, or is it overkill for my situation?


Solution

  • There are many reasons a queuing system is beneficial, but I am not sure they apply in your situation. It sounds like you have a single system all stored in a single database. As such, I don't think queuing would provide any advantage over normal tables.

    Situations where AQ provides benefits include: - as a mechanism for different systems (multiple databases) to talk to each other

    • when you have loosely coupled systems - a producer of messages sending to an unknown number of subscribers

    As a way to manage state in a single system, such as you describe, I think Streams/AQ would be overkill.