The design very much depends on what feed. Is it futures and everything is level-based or equities where it is order-based? Is queuing FIFO, ProRata or whatever else there is? It also depends on your intention - is this for backtesting? Or tracking queue position in a live environment? Not sure...