using FIFO queue instead of pubsub