Skip to content

Proactor pattern

The Proactor pattern is an architectural design pattern for achieving concurrency in event-driven systems. It is designed to handle service requests delivered asynchronously to an application from one or more clients^[600-developer-big-data-netty-netty-reactor.md].

Overview

The primary distinction of the Proactor pattern is its reliance on asynchronous I/O operations. In this model, the application registers an interest in an event (such as a read or write operation) and continues processing. The operating system or the framework handles the actual data transfer and notifies the application only when the operation is complete^[600-developer-big-data-netty-netty-reactor.md].

Comparison with Reactor

The Proactor pattern is often contrasted with the Reactor pattern^[600-developer-big-data-netty-netty-reactor.md]. While the Reactor pattern uses synchronous I/O (the application must wait for the data to be ready before reading it), the Proactor pattern allows the application to avoid waiting entirely, as the completion of the I/O operation is the event itself^[600-developer-big-data-netty-netty-reactor.md].

Sources

^[600-developer-big-data-netty-netty-reactor.md]