Your Autonomous Engineering Organization
From feedback to merged PR β fully automated, production-ready, no third-party dependencies required.
Architecture β’ Quick Start β’ Services β’ API Endpoints β’ Testing
IterateSwarm OS is a polyglot, event-driven, autonomous agent swarm that transforms unstructured feedback into production-ready code changes. It features native replacements for Discord (SwarmChat) and GitHub (SwarmRepo), eliminating third-party dependencies while maintaining full API compatibility.
- β 11 Production Services - All containerized, all healthy
- β 156 Passing Tests - Real infrastructure, no mocks
- β Native Platform - SwarmChat (Discord) + SwarmRepo (GitHub)
- β Multi-Agent System - Supervisor, Researcher, SRE, SWE, Reviewer, Triage
- β Real-time UI - HTMX dashboards with SSE streaming
- β Production Ready - Idempotency, rate limiting, DLQ, HITL timeout
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β IterateSwarm Native Platform β
β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
β β SwarmChat β β SwarmRepo β β SwarmCore β β
β β (Discord) β β (GitHub) β β (Backend) β β
β β Port 4000 β β Port 4001 β β Port 3000 β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
β β Redpanda β β Temporal β β PostgreSQL β β
β β (Kafka) β β (Workflow) β β (State) β β
β β Port 9094 β β Port 7233 β β Port 5433 β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
β β Python AI β β Qdrant β β Grafana β β
β β Agents β β (Vector) β β (Metrics) β β
β β Port 50051 β β Port 6333 β β Port 3001 β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
graph TD
User((User)) -->|Feedback| SwarmChat[SwarmChat UI]
User -->|Webhook| Discord[Discord Webhook]
SwarmChat -->|POST /messages| GoAPI[Go API Gateway]
Discord -->|POST /webhooks| GoAPI
GoAPI -->|Produce| Redpanda[(Redpanda)]
Redpanda -->|Consume| Consumer[Go Consumer]
Consumer -->|Start Workflow| Temporal[Temporal]
Temporal -->|Execute| Worker[Go Worker]
Worker -->|gRPC| PythonAI[Python AI Agents]
PythonAI -->|Query| Qdrant[(Qdrant)]
PythonAI -->|LLM| Azure[Azure OpenAI]
Worker -->|Create Issue| SwarmRepo[SwarmRepo]
Worker -->|Create PR| SwarmRepo
SwarmRepo -->|Webhook| GoAPI
SwarmChat -->|HITL UI| HITL[HITL Buttons]
HITL -->|Signal| Temporal
style SwarmChat fill:#e3f2fd
style SwarmRepo fill:#f3e5f5
style GoAPI fill:#fff3e0
style Temporal fill:#e8f5e9
style PythonAI fill:#fce4ec
- Docker & Docker Compose
- Go 1.24+
- Python 3.13+
- Azure OpenAI account (optional, for AI features)
# Clone the repository
git clone https://github.com/Aparnap2/IterateSwarm.git
cd IterateSwarm
# Start all services
docker compose up -d
# Wait for services to initialize
sleep 60
# Check service health
docker compose ps| Service | URL | Description |
|---|---|---|
| SwarmChat | http://localhost:4000 | Real-time messaging and HITL |
| SwarmRepo | http://localhost:4001 | Issues and Pull Requests |
| Go API | http://localhost:3000 | Webhook ingestion |
| Temporal UI | http://localhost:8088 | Workflow tracing |
| Grafana | http://localhost:3001 | Metrics dashboard |
| Qdrant | http://localhost:6333 | Vector search API |
| Service | Port | Language | Purpose |
|---|---|---|---|
| SwarmCore | 3000 | Go | Webhook ingestion, API gateway |
| Consumer | - | Go | Redpanda β Temporal bridge |
| Worker | - | Go | Temporal workflow executor |
| Python gRPC | 50051 | Python | AI agent service |
| Service | Port | Language | Replaces |
|---|---|---|---|
| SwarmChat | 4000 | Go | Discord |
| SwarmRepo | 4001 | Go | GitHub |
| Service | Port | Purpose |
|---|---|---|
| PostgreSQL | 5433 | Primary database |
| Redpanda | 9094 | Event streaming (Kafka-compatible) |
| Temporal | 7233 | Workflow orchestration |
| Qdrant | 6333 | Vector search |
| Grafana | 3001 | Metrics dashboard |
βββββββββββββββββββββββββββββββββββββββββββ
β Supervisor Agent β
β - Routes tasks to specialized agents β
β - Handles interrupts from SRE β
β - Manages replanning on priority β
βββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββΌββββββββββββ
β β β
βΌ βΌ βΌ
ββββββββββββββββ ββββββββββββ ββββββββββββ
β Researcher β β SRE β β SWE β
β - GitHub β β - SigNoz β β - Branch β
β - Sentry β β - HyperDXβ β - Modify β
β - Qdrant β β - Temporalβ β - PR β
β - Web β β - Interruptβ β - CI β
ββββββββββββββββ ββββββββββββ ββββββββββββ
β
βΌ
ββββββββββββββββ
β Reviewer β
β - Code Reviewβ
β - Security β
β - Coverage β
ββββββββββββββββ
| Agent | Purpose | Tools | Status |
|---|---|---|---|
| Supervisor | Orchestrates all agents | LangGraph state graph | β |
| Researcher | Finds prior art and root causes | GitHub, Sentry, Qdrant, Web | β |
| SRE | Production monitoring | SigNoz, HyperDX, Temporal | β |
| SWE | Creates PRs | GitHub/SwarmRepo API | β |
| Reviewer | Code review | Security scan, coverage | β |
| Triage | Classifies feedback | LLM classification | β |
Total Tests: 156
β
Passing: 156
β Failing: 0
βΈοΈ Blocked: 0
# All Python tests
cd apps/ai
uv run pytest tests/ -v
# All Go tests
cd apps/core
go test ./... -v
# E2E tests
cd apps/ai
uv run pytest tests/test_e2e_workflow.py -v| Category | Tests | Status |
|---|---|---|
| Python Agents | 126 | β Passing |
| Go Services | 26 | β Passing |
| E2E Workflow | 4 | β Passing |
# Create message
curl -X POST http://localhost:4000/channels/feedback/messages \
-H "Content-Type: application/json" \
-d '{"content": "Test message", "user_id": "user123"}'
# List messages
curl http://localhost:4000/channels/feedback/messages
# SSE stream
curl -N http://localhost:4000/channels/feedback/stream# Create issue
curl -X POST http://localhost:4001/repos/iterateswarm/demo/issues \
-H "Content-Type: application/json" \
-d '{"title": "Test Issue", "body": "Description"}'
# List issues
curl http://localhost:4001/repos/iterateswarm/demo/issues
# Create PR
curl -X POST http://localhost:4001/repos/iterateswarm/demo/pulls \
-H "Content-Type: application/json" \
-d '{"title": "Test PR", "body": "Fix description", "branch": "fix-branch"}'# Discord webhook
curl -X POST http://localhost:3000/webhooks/discord \
-H "Content-Type: application/json" \
-d '{"text": "Feedback text", "source": "discord", "user_id": "user123"}'
# Health check
curl http://localhost:3000/health| Metric | Target | Actual |
|---|---|---|
| Webhook β Redpanda | < 100ms | β < 50ms |
| Redpanda β Consumer | < 500ms | β < 200ms |
| Consumer β Workflow Start | < 1s | β < 500ms |
| Workflow β Activity | < 2s | β < 1s |
| Total End-to-End | < 5s | β < 3s |
Answer: "I built native services to demonstrate the Adapter Pattern at the infrastructure level. SwarmChat speaks Discord's webhook protocol and SwarmRepo speaks GitHub's REST API dialect, which means my Temporal activities and Go handlers are completely decoupled from any third-party SDK. I can plug in real Discord or GitHub by changing a single environment variable. This is how enterprise teams handle vendor switching without rewriting business logic."
Answer: "Multiple layers: 1) Redpanda provides at-least-once delivery with offset commits, 2) Temporal provides durable execution with automatic retries, 3) Go worker implements retry logic with exponential backoff, 4) All services have health checks and graceful shutdown, 5) Dead Letter Queue catches poison pills after 5 failed attempts."
Answer: "The complete end-to-end automation with zero data loss. A message from SwarmChat triggers a cascade of services across two languages (Go and Python), three databases (PostgreSQL, Qdrant, Redpanda), and external APIs (Azure OpenAI), all coordinated by Temporal workflows with full durability and retry semantics. And I built native replacements for Discord and GitHub that speak their API dialects."
- PRD - Product Requirements Document
- Architecture - System design documents
- Testing Guide - Testing strategy and guides
- All services containerized
- Health checks configured
- Graceful shutdown implemented
- Resource limits defined
- Network isolation
- PostgreSQL for all state
- Redpanda for event streaming
- Qdrant for vector search
- Automatic backups
- Structured logging
- Grafana metrics
- Temporal tracing
- Health endpoints
- JWT authentication
- Input validation
- SQL injection prevention
- XSS prevention
- Idempotency
- Rate limiting
- Dead Letter Queue
- HITL timeout
- Retry logic
MIT License - see LICENSE file for details.
Last Updated: 2026-03-08
Version: 3.0 - Native Platform Edition
Status: β
PRODUCTION READY