AsyncIterablePublisher is an implementation of Reactive Streams `Publisher`
which executes asynchronously, using a provided `Executor` and produces elements
from a given `Iterable` in a "unicast" configuration to its `Subscribers`.
AsyncSubscriber is an implementation of Reactive Streams `Subscriber`,
it runs asynchronously (on an Executor), requests one element
at a time, and invokes a user-defined method to process each element.
SyncSubscriber is an implementation of Reactive Streams `Subscriber`,
it runs synchronously (on the Publisher's thread) and requests one element
at a time and invokes a user-defined method to process each element.