Provided by: sympa_6.2.24~dfsg-1_amd64 bug

NAME

       Sympa::Internals::Workflow - Overview on workflow of Sympa

DESCRIPTION

       Following picture roughly describes interaction among several classes in workflow of
       Sympa.  For more details see documentation on each class.

   Message processing
        <<archived.pl>>

        Archive => [ProcessArchive] => (list archive)

        <<bounced.pl>>

        Bounce => [ProcessBounce] => Tracking

        <<bulk.pl>>

        Outgoing => [ProcessOutgoing] => (Mailer)

        <<sympa_automatic.pl>>

        Automatic => [ProcessAutomatic] => Incoming

        <<sympa_msg.pl>>

        Digest::Collection => [ProcessDigest]
                                           :
                                           *1

                            +-> (reject or ignore)
                           /
                          +---> [DoCommand]
                         /               :
        Incoming => [ProcessIncoming]    *2
                         \                              +-> (reject)
                          +-> [DoForward] => (Mailer)  /
                           \                          +-> [ToEditor] => Outgoing
                            +-> [DoMessage]          /
                                      \             /---> [ToHeld] => Held
                 *3 (CONFIRM)          +-> [AuthorizeMessage]
                 :                    /             \---> [ToModeration] => Mod.
        Held => [ProcessHeld] -------+               \
                                                      +-> [DistributeMessage]
                   *3 (DISTRIBUTE)                   /             \
                      (REJECT)       +--> (reject)  /               \
                       :            /              /                 \
        Moderation => [ProcessModeration]         /                   \
                                    \            /                     \
                                     +----------+                       \
                                                                         \
                              +-------------------------------------------+
                               \
                               [TransformIncoming]
        <<wwsympa.fcgi>>         \
                               [ToArchive] => Archive
        (list archive)             \
         => [ResendArchive] -- [TransformOutgoing] -+
                                     \               \
                               [ToDigest] => Digest   \
                                       \               \
                                        +---------------+-> [ToList] => Outgoing

                                   +-> [TransformDigestFinal]
                                  /                     \
        <<Template sending>>     /         +----------> [ToOutgoing] => Outgoing
                                /         /
        (mail template) => [ProcessTemplate] ---------> [ToAlarm] => Alarm
                               :          \
                               *1          +----------> [ToMailer] => (Mailer)

   Command processing
        <<sympa_msg.pl>>

                         *2
                         :
        (message) => [ProcessMessage] -+              +-> (reject)
                                        \            /
             *3 (AUTH)                   \          /---> [ToAuth] => Auth
                (DECL)    +-> (decline)   +-> [AuthorizeRequest]
                 :       /               /          \---> [ToAuthOwner] => Auth
        Auth => [ProcessAuth]           /            \
                         \             /              +-> [DispatchRequest]
                          +-----------+                            \
                                     /                      (request handler)
        <<wwsympa.fcgi, SOAP>>      /                                  :
                                   /                                   *3
        Request::Collection       /
               => [ProcessRequest]

   Legend
       "ClassName"
           Spool class.  Prefix "Sympa::Spool::" is omitted.

           "Alarm"
           "Outgoing"
           "Tracking"
               Sympa::Alarm, Sympa::Bulk and Sympa::Tracking classes (they are named such by
               historical reason).

       "[ClassName]"
           Workflow class.  Prefix "Sympa::Spindle::" is omitted.

       "(Mailer)"
           Sympa::Mailer class.

       "(list archive)"
           Sympa::Archive class.

       "(mail template)"
           Sympa::Message::Template class.

       "(message)"
           Sympa::Request::Message class.

       "(request handler)"
           A subclass of "Sympa::Request::Handler" class.

SEE ALSO

       sympa_toc(1), Sympa::Internals, Sympa::Spindle, Sympa::Spool.