Half-sync/Half-async: In concurrent systems, decoupling of synchronous and asynchronous service processing brings programming simplicity without reducing the performance. Half-sync/Half-async introduces two intercommunicating layers, one for synchronous and another for asynchronous service processing, with a queuing layer in-between.
This pattern enables the synchronous and asynchronous processing services to communicate with each other and helps those processes to decompose into layers.
Leader/Followers: If we need an efficient concurrency model where multiple threads need to take turns sharing a set of event sources that detect, de-multiplex, dispatch, and process event-sources' service requests, then the best choice is to implement the Leaders/Followers pattern in our system.
The aim of this pattern is to provide an elegant solution to process multiple events concurrently, such as in multithreaded server applications.