There is a lot of literature on the subject if you want more pragmatic notes. You read Rachel’s blog not only for the tech experience, but for her storytelling skills.
I particularly enjoy her blog.
The problem is that a solution for I/O bound workloads has become generalized as the solution for all concurrency needs when in reality, that’s just half the picture.
She mentioned a hell of a lot of googlable terms: epoll_wait, Apache thundering herd, EPOLLONESHOT, EAGAIN, idempotent requests, userspace threads, copy-on-write, queue depth determination, selective LIFO, strongly typed RPC, ...
Presumably “queue depth determination”, another new term for me, means determining how big the queue of pending requests for a service is allowed to get before further requests are refused (another load shedding measure) rather than being enqueued.