SYMPA::INTERNALS::WORKFLOW(3Sympa)

๐Ÿฆ‹ NAME ๐Ÿฆ‹

Sympa::Internals::Workflow โ€” the whole big-picture overview of Sympa's workflow, bestie. it's a section 3Sympa page, so you already know it's giving โœจofficial loreโœจ ๐Ÿ’…


๐Ÿ’– DESCRIPTION ๐Ÿ’–

okay so. the picture down there roughly describes how a bunch of classes interact with each other in the workflow of Sympa โ€” it's giving beautiful chaotic web and honestly? we're obsessed. ๐Ÿ•ธ๏ธ๐Ÿ’ซ if you want the actual deep lore on any one of these classes, each class has its own documentation, so go read those, fr fr. this page is the vibe map, not the whole encyclopedia ๐Ÿซถ

๐Ÿ’Œ Message processing ๐Ÿ’Œ

you'll also spot names in <<...>> form chillin' in there, plus the little *1, *2, *3 markers doing their โœจthingโœจ. anyway, here's the art:

        <<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]
                                           :
                                           v
                                           *1

                             +-> (reject or ignore)
                            /
                           +---> [DoCommand]
                          /              :
                         /               v
        Incoming => [ProcessIncoming]    *2
                         \                              +-> (reject)
                          +-> [DoForward] => Outgoing  /
                           \                          +-> [ToEditor] => Outgoing
                            +-> [DoMessage]          /
                                      \             /---> [ToHeld] => Held
                 *3 (CONFIRM)          +-> [AuthorizeMessage]
                 :                    /      :      \---> [ToModeration] => Mod.
                 v                   /     Topic     \
        Held => [ProcessHeld] ------+                 \
                                                       +-> [DistributeMessage]
                   *3 (DISTRIBUTE)                    /           \
                      (REJECT)       +--> (reject)   /             \
                       :            /               /               \
                       v           /               /                 \
        Moderation => [ProcessModeration]         /                   \
                                   \             /                     \
                                    +---------- +                       \
                                                                         \
                              +-------------------------------------------+
                               \
                               [TransformIncoming]
                                 \        :
                                  \     Topic
        <<wwsympa.fcgi>>           \
                               [ToArchive] => Archive
        (list archive)               \
         => [ResendArchive] -- [TransformOutgoing] -+
                                       \             \
                               [ToDigest] => Digest   \
                                         \             \
                                          +-------------+-> [ToList] => Outgoing
                                                                  :
                                   +-> [TransformDigestFinal]    Topic
                                  /                 \
        <<Template sending>>     /         +------> [ToOutgoing] => Outgoing
                                /         /
        (mail template) => [ProcessTemplate] -----> [ToListmaster] => Listmaster
                              /           \
                              ^            +------> [ToMailer] => (Mailer)
                              |
                              *1

๐ŸŽ€ Command processing ๐ŸŽ€

the *2 from earlier literally picks up right here, no lies:

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

๐Ÿงš Task processing ๐Ÿงš

short king section, we love her for it:

        <<task_manager.pl>>

        Task => [ProcessTask] => Task

๐Ÿ‘‘ Legend ๐Ÿ‘‘

ok so all those cryptic little symbols? yeah, they're not cryptic, they're iconic. here's the decoder ring, bestie ๐Ÿ”ฎ:

  • "ClassName" โ€” a Spool class. the prefix "Sympa::Spool::" is omitted (you know how it is).
    • "Tracking" โ€” hi yes that's the Sympa::Tracking class ๐Ÿ’…
  • "[ClassName]" โ€” a Workflow class. the prefix "Sympa::Spindle::" is omitted.
  • "(Mailer)" โ€” the Sympa::Mailer class.
  • "(list archive)" โ€” the Sympa::Archive class.
  • "(mail template)" โ€” the Sympa::Message::Template class.
  • "(message)" โ€” the Sympa::Request::Message class.
  • "(request handler)" โ€” a subclass of the "Sympa::Request::Handler" class.

๐ŸŒˆ SEE ALSO ๐ŸŒˆ

go off, read more, we stan cross-references:


and that's the whole page, babes ๐Ÿซถ this one shipped with sympa 6.2.80 and dated 2026-10-19 โ€” periodt ๐Ÿ’–โœจ

๐Ÿ“ฆ where this page comes from