Skip to main content

Overview

Every content item submitted to the platform passes through an automated moderation pipeline before publication is permitted. The pipeline performs six parallel checks. A flagged result on any check routes the content to the human review queue. The Content Service holds the item in UNDER_REVIEW status until a final moderation decision is recorded.
Content in UNDER_REVIEW status is not accessible to viewers. The creator can see the item in their dashboard with status “Under Review” and an estimated resolution time. Immediate publication bypasses are not available to any role below platform:admin.

Automated Moderation Checks

All six checks run in parallel once raw media is available in the ML Processing zone. Check workers consume from the moderation.check.requested internal topic.
CheckMethodModel / ToolThreshold
Harmful imageryComputer vision frame sampling (1 fps)Fine-tuned ResNet / ViT classifier>0.8 confidence → flag
Audio analysisASR transcription + content classifierWhisper ASR + custom classifierAny prohibited keyword match → flag
Hate speechNLP on ASR transcript and metadataFine-tuned BERT multilingual>0.75 confidence → flag
MisinformationLink extraction + against verified claim DBKnowledge graph lookupHigh-confidence match → flag
CopyrightAudio fingerprinting + video fingerprintingDejavu / custom fingerprinter vs rights DBAny match → flag
Spam / inauthenticMetadata anomaly detectionRule-based heuristics + frequency analysisMultiple signal match → flag

Human Review and Decision Flow

1

AI check completion

All six automated checks complete and results are written to the moderation result record. If all checks pass, content is transitioned to READY_FOR_PUBLISH and the Content Service proceeds with DRM packaging and publication.
2

Flag aggregation

If any check produces a flag, the moderation pipeline aggregates flags and routes the content to the Human Review queue. The moderation.item.queued event is produced to notify the Admin Control Plane.
3

Human reviewer assignment

A moderator in the Admin Control Plane picks up the review item. The item includes: AI confidence scores per check, flagged frames or audio timestamps, the content thumbnail, title, and description. Moderation SLA: 4 hours for standard queue; 30 minutes for escalated queue.
4

Reviewer decision

Reviewer selects one of four outcomes: Approve (clear content), Remove (violating content), Age-gate (restrict to 18+), Request creator edit (minor issue, creator given opportunity to re-upload).
5

Outcome dispatch

The decision is recorded in the moderation audit log. The appropriate event is produced: moderation.approved, moderation.removed, or moderation.edit_requested. Content Service and Notification Service both consume these events.
6

Creator notification

Notification Service sends the creator an in-app and email notification with the outcome. Removal notifications include the specific violation category. Creator can view the full decision in their Creator Dashboard under “Policy Decisions”.
7

Appeal window

For moderation.removed decisions, creators have a 14-day window to submit an appeal via the Creator Dashboard. Appeal enters a dedicated escalated review queue. Second reviewer handles the appeal — the original reviewer cannot review the same appeal.

Repeat Violation Tracking

The moderation system records all violation decisions against the creator account. Escalating penalties apply:
Violation Count (rolling 90 days)Penalty
1st violationWarning. No restriction.
2nd violation7-day upload suspension. Creator notified.
3rd violation30-day upload suspension. Revenue share paused for suspension period.
4th violationPermanent suspension reviewed by Trust & Safety team. Creator notified of manual review.
Any severe violation (CSAM, credible threat)Immediate permanent suspension. Automated referral protocol activated regardless of prior history.

Kafka Topics Used

TopicDirectionPurpose
moderation.check.requestedInternalTriggers parallel AI check workers
moderation.flaggedProducedConsumed by Content Service (hold publication), Admin Control Plane (queue review item)
moderation.approvedProducedConsumed by Content Service (release to publish)
moderation.removedProducedConsumed by Content Service (mark removed), Notification Service (notify creator)

Failure Handling

FailureBehaviour
One AI check worker unavailableContent is routed to human review queue regardless of other check results. A DEGRADED_AI flag is attached to the queue item so the reviewer knows which check could not be completed automatically.
All AI checks unavailableUpload succeeds but content is held in PENDING_MODERATION. Human review queue is activated for all new uploads until AI workers recover. On-call alert triggered.
Human review SLA breach (item > 4 h in queue)Automated escalation: item moves to the escalated queue and a Slack alert is sent to the on-call Trust & Safety shift lead.
Copyright DB unavailableCopyright check skipped. Item proceeds without copyright validation. Item is flagged for a deferred copyright check (background job within 24 h).

Build docs developers (and LLMs) love