patterns-0.1.0: src/Network/Mom/Patterns/Basic.hs
-------------------------------------------------------------------------------
-- |
-- Module : Network/Mom/Patterns/Basic.hs
-- Copyright : (c) Tobias Schoofs
-- License : LGPL
-- Stability : experimental
-- Portability: non-portable
--
-- Basic communication patterns
-------------------------------------------------------------------------------
module Network.Mom.Patterns.Basic (
-- * Basic communication patterns
-- $basic
-- * Client Server
-- $cliser
module Network.Mom.Patterns.Basic.Client,
module Network.Mom.Patterns.Basic.Server,
-- * Pub Sub
-- $pubsub
module Network.Mom.Patterns.Basic.Publisher,
module Network.Mom.Patterns.Basic.Subscriber,
-- * Pipeline
-- $pipe
module Network.Mom.Patterns.Basic.Pusher,
module Network.Mom.Patterns.Basic.Puller)
where
import Network.Mom.Patterns.Basic.Client
import Network.Mom.Patterns.Basic.Server
import Network.Mom.Patterns.Basic.Publisher
import Network.Mom.Patterns.Basic.Subscriber
import Network.Mom.Patterns.Basic.Pusher
import Network.Mom.Patterns.Basic.Puller
{- $basic
The Basic module provides the basic communication patterns
defined in the zeromq library.
The Basic module is just a convenience reexport of
the single modules containing the patterns.
The basic functionality is split into small modules,
since usually one application module will only need
one side of a communication pattern. For the case,
an application needs several patterns at the same location,
the basic module eases life providing a single import
for all patterns.
-}
{- $cliser
Clients request a service from a server.
When a server receives a client request,
it sends a response to this client.
This implies that clients have to start the communication
by sending a request.
Usually, many clients connect to one server.
-}
{- $pubsub
Publishers issue data under some topic,
to which interested parties can subscribe.
Subscribers do not need to request data explicitly,
they receive the newest updates when available,
once they have subscribed to the topic.
Usually, many subscribers connect to one publisher.
-}
{- $pipe
Pushers and pullers form a pipeline
to send work packages downstream;
pushers can only send data,
which represent the work to be done,
pullers can only receive data.
Usually, the pusher binds the address,
to which many pullers connect.
-}