4 ms·
Thanks! There are a few things at play. High level, it's important to note we provide infra for you — so our multi-tenancy supports many tenants for every use
by tonyhb 2y ago
Thanks! There are a few things at play. High level, it's important to note we provide infra for you — so our multi-tenancy supports many tenants for every user.
In general, fairness means distributing work evenly amongst all accounts. This largely means partitioned queues. Firstly, every functions have their own queues. We have queues of queues: queues of functions available. And then we have queues of accounts. And so on. It's like nesting dolls all the way down.
There are lots of really fine details to get right: continuations, step parallelism, `connect()` with long running workers all mess with fairness, as do batching, debounce, throttling.
We wrote about it in some detail here: https://www.inngest.com/blog/building-the-inngest-queue-pt-i-fairness-multi-tenancy https://www.inngest.com/blog/building-the-inngest-queue-pt-i.... We'll probably do some deeper dives on this next year, too!