PDMSC · how it works

Cheap layers first, expensive layers only when needed.

Most mail is easy. PDMSC settles it with the cheapest model that is sure, and spends more effort only on the messages that earn it.

01The pipeline

  1. Receiverspamd hands the message to PDMSC

    PDMSC is an external_services backend over HTTP, so an existing rspamd deployment needs no replacement.

  2. CascadeEach layer decides or defers

    A layer that is confident returns a verdict and the rest never run. A layer that is not defers to the next. Peer groups require agreement before a single specialist can act alone.

  3. VerdictSpam, ham, or undecided

    Undecided is returned for mail that cannot be scored fairly, such as no detectable language or too little text. The surrounding rspamd signals then decide.

  4. IntentA local model reads the residue

    For the cases the cascade will not call, a local language model reads what the message is trying to get the recipient to do. It runs on the same host; nothing goes to an external API.

02Deployment footprint

Figures are for the classifier backend, English set. Memory and latency are from the production Linux deployment; the same source builds and runs on every platform listed.

Memory

1.37 GB resident

English set, classifier daemon.

Disk

557 MB

English set, model files.

Platforms

BSD, Linux, Solaris 10

FreeBSD, OpenBSD, BSDSUniX, Linux and Solaris 10.

Architectures

AMD64 to SPARC64

AMD64, Intel, ARM64 and SPARC64; bare metal, VMs, and logical domains.

Integration

rspamd over HTTP

Observe-only mode scores live mail at zero weight first.

Dependencies

None for classification

Redis is used only to share URL verdicts across nodes.

03Operations

Get started

Ask for the numbers on your own mail.

Every figure here is reproducible on request.

enquiries@misullivan.com