Livelock in event-driven services
are event-driven services guaranteed to process requests in the same order as requests were created? If the client sends requests #1, #2, #3 etc faster than the service implementation could process them, is there a guarantee that the request #1 is processed before the request #100?
If there is no such guarantee, is there at least a protection from a livelock? If new requests are sent with approximately the same speed as they are executed, is there a guarantee that each request will be eventually executed, or could a request be indefinitely postponed because other requests (which were sent later) are being executed?
Background of the question: when I run performance tests for an event-driven service (async calls) under a heavy load and measure a latency, the measured latency for some requests appears too large compared with a time which it takes for a service to process a single request. The large latency could be perfectly explained if some requests are queued for an execution for a long time because other requests, which were sent later, are processed earlier (out-of-order).