All projects
Web AppGraduation Project · Ain Shams University

RUNE

Describe your workflow. Automate your world.

Next.jsFastAPIGoRustPostgreSQLRabbitMQRedisDocker

RUNE is an open-source workflow automation platform — my graduation project at Ain Shams University. It lets you design, execute, and monitor complex automations through a visual interface: orchestrating API calls, processing data pipelines, or building multi-step integrations, from idea to execution.

The RUNE dashboard — workflow builder and execution monitor in one view.
RUNE visual workflow designer

The RUNE dashboard — workflow builder and execution monitor in one view.

Architecture

RUNE follows a polyglot microservices architecture, using the right tool for each job: a FastAPI backend for orchestration, a Go worker for fault-tolerant execution, a Rust service for real-time WebSocket streaming, and a Next.js frontend built on React Flow.

RUNE polyglot microservices architecture.
RUNE system architecture diagram

RUNE polyglot microservices architecture.

Frontend (Next.js)  ->  API (FastAPI)
                          ->  PostgreSQL   (definitions)
                          ->  RabbitMQ     (message broker)
                          ->  Worker (Go)  (execution)
                          ->  RTES (Rust)  (live WebSocket updates)
                          ->  MongoDB      (execution history)
                          ->  Redis        (state & caching)

Key features

  • Visual workflow designer with drag-and-drop nodes
  • Extensible node system for API calls, conditions, and parallel execution
  • Real-time execution monitoring over WebSockets
  • AI assistants — Smith builds workflows from plain English; Scryb auto-generates documentation
  • Secure credential management with encryption at rest
  • Collaboration with granular permissions and audit trails

The bad news is time flies. The good news is you're the pilot.

What I learned

Building RUNE taught me that automation platforms are really state machines with good UX. Every node in the builder maps to a discrete step in the engine, and the visual layer is a friendly face on top of a queue. The hardest part wasn't the UI — it was making execution reliable when workflows branch, retry, and fail mid-run.