MicroArchitecture element. Related to AsyncAdapter, BetterQueue. Often described as a MessageAdapter. The PushPullAdapter converts a method call into state. The PullPushAdapter detects state and invokes a method call. These adapters are used to bridge execution thread boundaries e.g. separate computers. The sender invokes a PushPullAdapter which converts the method call into a message. A PullPushAdapter notices messages and invokes the appropriate method on the object it is adapting to. These elements tend to be used in two pairs, one for an outgoing message stream, and another for an incoming message stream. These adapters may be transparent with retry logic, but the underlying objects should be able to handle errors.