Queues are intimately related to event processing and are an essential part of the architecture, since input sources and output destinations are usually asynchronous and bursty in nature. Therefore, FIFO (First-In, First-Out) queues at the front (contained by) ThreadedEventProcessors serve to smooth out bursty traffic patterns and provide event-receiving SystemObjects
with a consistent workload. In fact, the relationship between sending and receiving objects is that of producer-consumer, with the queue and a separate thread providing the data and time-autonomy between event-producing and consuming objects. Note that queuing only smooths out bursty traffic rates; if the event arrival rate is greater than aggregate ECS throughput, you will necessarily have blocking and not be truly realtime.