Why do we need a sequencer inside agent .Can't we do the same task inside Driver?

Since the code inside sequencer is just getting the transaction and passing it to the the Driver i don’t see any reason to implement the sequencer . We can easily do the same task in driver i.e. getting the transaction inside driver code.
Please clarify why we need to implement sequencer and if there are any other applications of sequencer .

Thanks in advance .

In reply to abhishekmj:

A sequencer does more than just that. It mainly arbitrates between multiple sequences running on it. When there is only one running sequence, there is nothing to arbitrate between, hence it just forwards the items from that sequence.

You can implement all sorts of fancy scenarios like starting 5 sequences in parallel on the sequencer and it will take one item from each in round robin fashion. You can start a sequence and get items from that, start another sequence in the meantime that interrupts the first sequence, get items from the second one until it’s done and then go back to the first sequence. There are a lot of cases where such scenarios are useful.

In reply to Tudor Timi:

Agreed with Tudor.
Apart from what he said,Sequence can tightly adhere/communicate with driver.But if you remove sequencer it will reduce chances of vertical reuse of the agent.

In reply to kiru2006:

Thanks alot guys !! It really helped me understanding the sequencer concept.