reactor vs proactor
Referencing Fail fast or fail safe? as well as wiki articles I would say that proactor is fail-safe and reactor is fail-fast. Proactor having a completion handler gives it a more "safe" approach. A synchronous environment such as reactor will have large fail if one task fails while blocking a large amount of resources. Hope this helps.
In reactor pattern you will poll device for readiness to do something, while in proactor you do something and poll for its completion.
The good examples for reactor pattern are: epoll(Linux), kqueue(MacOS, FreeBSD), select(Linux, MacOS, Windows) approaches. The good example for proactor pattern is Windows IOCP approach.