# Protocols

{{hi:protocol}}
The Scalability Protocols are a principally a collection of common networking
patterns found in applications.

The following patterns are included:

## Request - Reply

The {{i:request/reply pattern}} is made up of the [_REQ_][req] and [_REP_][rep] protocols.
This most often used when implementing RPC-like services, where
a given request is matched by a single reply.

## Pipeline

The {{i:pipeline pattern}} is made up of the [_PUSH_][push] and [_PULL_][pull]
protocols.

In this pattern communication is {{i:half-duplex}}, in that one side sends
data and another side receives.

This pattern is also characterized by its ability to solve distribution
problems, and the fact that it has {{i:back-pressure}}, providing a measure
of {{i:flow control}} to data production and consumption.

## Publish - Subscribe

## Bus

## Pair

{{#include ../xref.md}}
