Drools supports parallel execution mode. One session can be executed by multiple threads.
Note that this feature is not supported in Drools 5.5.0.Final. It might be reintroduced in future; for now, keep this in mind and take this information as a curiosity.
The Rete network is split into multiple partitions. Each partition is handled by a
PartitionTaskManager object. It manages a list of suspended propagations and makes sure that only one of them is being executed at a time over this partition. When a fact is propagated through the network, it may go through one or more partitions. Once a propagation reaches the boundary between two partitions, the other partition's
PartitionTaskManager is notified and the current ...