Back to Blog Series
Part 7: Review GovernanceStep 7 of 15HITLGovernanceBackend

Human-in-the-Loop Review System Architecture

How I built Fluxo's review inbox, governance assessment pipeline, routing policy, revision loops, and external review links.

Why this part is here in the storyline

Add human review, routing, and auditability to the runtime for production-safe automation.

Artem Moshnin, Lead Software EngineerFebruary 16, 202616 min
Series Progress7/15

Most automation tools optimize for speed. Fluxo optimizes for controlled speed: fast enough to scale, governed enough to trust. That is why Human Review is a first-class subsystem in Fluxo.

Human Review is not a UI checkbox. It is a system of record: persisted tasks, routing decisions, audit trails, and explicit state transitions. When a workflow pauses for review, the platform records exactly what happened so the run can be resumed safely and explained later.

Section 1

What happens when Human Review runs

#what-happens-when-human-review-runs

When the HUMAN_REVIEW node executes, Fluxo:

  • resolves draft content and context paths from upstream graph data
  • creates a ReviewTask with status PENDING
  • stores original content, revision number, and routing metadata fields
  • emits review-created events for notifications and automations

Execution waits for a decision and resumes only when a valid transition is recorded. That single design choice is what makes review reliable: you can always answer who approved what, when, and why.

Section 2

Governance assessment pipeline

#governance-assessment-pipeline

Routing is only useful if it is grounded in data. Before routing, Fluxo computes a governance assessment that combines multiple signals:

  • deterministic rule checks (PII, links, numeric claims, forbidden terms, length bounds)
  • historical trust metrics (first-pass volume and approval rate)
  • optional model self-evaluation
  • risk flag severity scoring to derive confidence

This produces a concrete confidence score, risk flags, and reasons. Those fields are persisted on the task for auditability and later analytics.

Section 3

Policy routing decisions

#policy-routing-decisions

Routing policy can choose:

  • STANDARD_REVIEW
  • AUTO_APPROVED
  • ESCALATED
  • BLOCKED

Auto-approval is guarded by strict checks: confidence threshold, word-count bounds, no high-severity flags, minimum trust history, and downstream destination risk constraints. Fluxo only allows low-risk destination classes for auto-approval paths.

Section 4

Review actions and state transitions

#review-actions-and-state-transitions

Review actions are implemented through explicit service functions with access checks:

  • approve
  • reject
  • request revision

Transitions write timestamps, actor identity, optional edited content, and audit logs. They also emit webhook dispatch and completion events so external systems remain synchronized.

Section 5

Revision regeneration loop

#revision-regeneration-loop

For revision requests, Fluxo can regenerate from the nearest upstream AI node. Fluxo resolves the regeneration target from graph structure, applies revision feedback, executes the AI node again, and creates a new review cycle with an incremented revision number.

I cap revision loops to protect runtime health and avoid infinite regenerate/review oscillation.

Section 7

Notification and delivery model

#notification-and-delivery-model

Review events can notify users over Slack, Discord, Telegram, or email. Deliveries are persisted with status and provider identifiers. Retries and digest/reminder flows run through scheduled background functions.

This lets teams operate review SLAs as an actual process, not a best-effort inbox.

Section 8

Why this matters

#why-this-matters

Many automation products optimize for speed alone. I optimized Fluxo for controlled speed: fast enough to scale, governed enough to trust.