Sobes.tech
Senior

Tell about the design of the moderation bus/orchestrator — how did you design it, what decisions did you make?

sobes.tech AI

Answer from AI

Designing a moderation bus or orchestrator involves creating a system that manages data flows and moderation tasks, ensuring their coordination and scalability.

Key stages and decisions in design:

  • Requirements definition: what types of content need moderation, what rules and SLAs.
  • Architecture choice: often a microservices approach with a message bus (e.g., Kafka, RabbitMQ) for asynchronous event transmission.
  • Orchestration: a service that distributes moderation tasks among different modules (automatic verification, manual moderation).
  • Scalability: designing the system to easily add new modules and increase throughput.
  • Error handling and retries: reliability is crucial, so mechanisms for reprocessing and monitoring are implemented.
  • Logging and auditing: for tracking moderation decisions and analysis.

Example solution: a message bus receives events with new content, the orchestrator distributes them between automatic verification and manual moderation services, results are collected and aggregated for decision-making.

In Go, this can look like a set of microservices communicating via gRPC and a message bus, with a centralized orchestrator managing task states.