A slot is like a shared lock which can be acquired by one task at a time. When a client submits a task and requests to assign it to a slot then the broker will reject the request if there is another tasks in waiting or running status for that slot.

This is useful if you need to execute only one kind of tasks, which can be for example some sort of "critical section". By means of this simple algorithm it is possible to implement simple distributed locks without the need of expensive distributed lock algorithms.

Assigning a task to the slot is like using the Lock.tryAcquire methods of Java Concurrent Locks facility.