Skip to content

Commit 6fb9bcb

Browse files
authored
Merge pull request #2 from itk-dev/feature/agentic-orchestration-studio
Feature/agentic orchestration studio
2 parents 3a86136 + 452843d commit 6fb9bcb

12 files changed

Lines changed: 3928 additions & 1 deletion

File tree

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,14 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
3333
- Interactive HTML mock: Salary negotiation workflow with three tabs (personaleleder, HR-behandling, chefgodkendelse)
3434
- Mocks listing page
3535

36+
### Added — Agentic Orchestration Studio Project
37+
- Main research report with pitch, problem statement, and recommendations
38+
- Open source landscape analysis across 5 categories (orchestration, BPM, agents, RPA, integration)
39+
- Feature comparison matrix of 15+ open-source tools
40+
- Two architecture options: full composed stack and minimal viable stack
41+
- Considerations document covering roles, security, OS2Forms, scalability, and funding
42+
- Denmark/OS2 public sector alignment analysis
43+
3644
### Changed
3745
- Rebranded site from "AI Research — Aarhus Kommune" to "ITKdev Research"
3846
- Replaced green theme with neutral black/grey palette

CLAUDE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ requirements.txt # Python dependencies
2828
## Conventions
2929

3030
- All content is written in Markdown
31-
- Interactive mocks are self-contained HTML files (no external dependencies)
31+
- Interactive mocks are self-contained (no external dependencies). Small mocks use a single HTML file. Larger mocks may split CSS and JS into co-located files with the same base name (e.g. `unified-platform.html`, `.css`, `.js`)
3232
- Images are PNG screenshots of the mocks
3333
- Every project document starts with a project label: `<small>**Project:** Project Name</small>`
3434
- Use MkDocs Material admonitions (`!!! info`, `!!! warning`) for callouts

docs/index.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,19 @@ Kan vi erstatte Excel-baseret lønforhandling med et struktureret system der tr
3434

3535
- [Pitch og løsningsbeskrivelse](projects/salary-negotiation/index.md) — problem, løsning, integrationer og tekniske forudsætninger
3636
- [Interaktiv prototype](projects/salary-negotiation/mocks.md) — personaleleder, HR-behandling og chefgodkendelse
37+
38+
---
39+
40+
### [Agentic Orchestration Studio](projects/agentic-orchestration/index.md)
41+
42+
**Status:** Draft | **Started:** April 2026
43+
44+
Can we build a shared, open-source platform for mapping, automating, orchestrating, and measuring business processes across Aarhus Kommune?
45+
46+
Inspired by TwoDay's commercial AOS, this project researches the open-source landscape and proposes an architecture for a self-hosted orchestration platform covering AI agents, RPA, workflow automation, and human-in-the-loop.
47+
48+
**Key deliverables:**
49+
50+
- [Open source landscape analysis](projects/agentic-orchestration/open-source-landscape.md) across 5 tool categories
51+
- [Architecture options](projects/agentic-orchestration/architecture.md) — full and minimal composed stacks
52+
- [Considerations](projects/agentic-orchestration/considerations.md) — roles, security, OS2, funding
Lines changed: 216 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,216 @@
1+
<small>**Project:** Agentic Orchestration Studio</small>
2+
3+
# Architecture Options
4+
5+
Two proposed architectures for an open-source orchestration platform, from comprehensive to minimal.
6+
7+
---
8+
9+
## Option A: Full Composed Stack
10+
11+
Maximum flexibility. Covers all four capabilities (Map, Automate, Orchestrate, Analyze) with best-of-breed tools at each layer.
12+
13+
### Components
14+
15+
| Layer | Tool | Role |
16+
| ---------------------------- | ----------------------- | -------------------------------------------------------------------------------------------- |
17+
| **Process engine** | Flowable | BPMN 2.0 process execution, CMMN case management, DMN decision tables, human task management |
18+
| **Process modeler** | BPMN.io | Web-based visual BPMN editor, embeddable in our UI |
19+
| **Agent orchestration** | LangGraph | AI agent workflows — classification, summarization, decision support, with human-in-the-loop |
20+
| **Integration & automation** | n8n | 400+ connectors to external systems (forms, case management, email, APIs) |
21+
| **RPA** | Robot Framework | Desktop/browser/API automation for legacy systems |
22+
| **Operations monitoring** | Grafana + OpenTelemetry | Infrastructure health, alerting, detailed analytics (IT/admin only) |
23+
| **Data store** | PostgreSQL | Shared database for process state, audit logs, analytics |
24+
| **Identity** | Keycloak | Single sign-on, role-based access, municipal AD integration |
25+
26+
### How it fits together
27+
28+
```
29+
┌─────────────────────────────────────────────────────────┐
30+
│ Web Frontend │
31+
│ (Process maps, dashboards, task inbox) │
32+
├────────────┬────────────┬────────────┬──────────────────┤
33+
│ BPMN.io │ Task UI │ Dashboard │ Admin │
34+
│ (modeler) │ (inbox) │ (custom) │ (config) │
35+
├────────────┴────────────┴────────────┴──────────────────┤
36+
│ API Gateway │
37+
├────────────┬────────────┬────────────┬──────────────────┤
38+
│ Flowable │ LangGraph │ n8n │ Robot Framework │
39+
│ (BPMN/ │ (agents) │ (integr.) │ (RPA) │
40+
│ CMMN/ │ │ │ │
41+
│ DMN) │ │ │ │
42+
├────────────┴────────────┴────────────┴──────────────────┤
43+
│ Keycloak (identity/SSO) │
44+
├─────────────────────────────────────────────────────────┤
45+
│ PostgreSQL │ OpenTelemetry │ Grafana │
46+
│ (state/audit) │ (telemetry) │ (dashboards) │
47+
└─────────────────────────────────────────────────────────┘
48+
49+
┌─────────────┼─────────────┐
50+
│ │ │
51+
┌───┴───┐ ┌────┴───┐ ┌────┴───┐
52+
│ KMD │ │ SBSYS │ │OS2Forms│
53+
│ │ │ │ │ │
54+
└───────┘ └────────┘ └────────┘
55+
(external systems / backends)
56+
```
57+
58+
### Interaction patterns
59+
60+
1. **Process designer** uses BPMN.io to model a process visually
61+
2. **Flowable** executes the BPMN process, routing between automated steps and human tasks
62+
3. At an "agent step", Flowable delegates to **LangGraph** which runs the AI agent(s)
63+
4. At an "integration step", Flowable triggers **n8n** workflows to talk to external systems
64+
5. At an "RPA step", Flowable triggers a **Robot Framework** job for legacy system automation
65+
6. **Human-in-the-loop** tasks appear in a task inbox UI, powered by Flowable's task service
66+
7. The **platform dashboard** (custom, built into the web frontend) shows process stats, task counts, hours saved, and ROI to all users
67+
8. **OpenTelemetry** collects infrastructure metrics from all components; **Grafana** provides detailed operational dashboards, alerting, and ad-hoc analytics for IT/admins
68+
9. **Keycloak** handles authentication and role-based access across all components
69+
70+
### Strengths
71+
72+
- Full coverage of Map, Automate, Orchestrate, Analyze
73+
- Each component is replaceable (no vendor lock-in)
74+
- Scales independently per layer
75+
- Standards-based (BPMN 2.0, OpenTelemetry, OIDC)
76+
77+
### Risks
78+
79+
- Integration complexity — 6+ components to connect and maintain
80+
- Requires strong DevOps capability
81+
- More moving parts = more potential failure points
82+
- Longer time to first value
83+
84+
---
85+
86+
## Option B: Minimal Viable Stack
87+
88+
Fastest path to a working platform. Three components covering the core needs.
89+
90+
!!! info "See the mock"
91+
The [Unified Platform mock](mocks/unified-platform.html) demonstrates how these three components can feel like a single seamless platform.
92+
93+
### Components
94+
95+
| Layer | Tool | Role |
96+
| -------------------------------- | -------- | ---------------------------------------------- |
97+
| **Process engine + human tasks** | Flowable | BPMN execution, case management, task inbox |
98+
| **Integration & automation** | n8n | External system connectors, simple automations |
99+
| **Platform dashboard** | Custom (built-in) | Process stats, task overview, hours saved — for all users |
100+
| **Operations monitoring** | Grafana + OpenTelemetry | Infrastructure health, alerting, ad-hoc analytics — for IT/admins |
101+
102+
### How it fits together
103+
104+
```
105+
┌─────────────────────────────────────┐
106+
│ Web Frontend │
107+
│ (Process maps, task inbox, │
108+
│ dashboards) │
109+
├──────────────┬──────────────────────┤
110+
│ Flowable │ n8n │
111+
│ (BPMN + │ (integrations │
112+
│ tasks + │ + automations) │
113+
│ dashboard) │ │
114+
├──────────────┴──────────────────────┤
115+
│ PostgreSQL │ OpenTelemetry │
116+
├───────────────────┤ + Grafana │
117+
│ (state/audit) │ (ops only) │
118+
└───────────────────┴─────────────────┘
119+
120+
┌─────────┼─────────┐
121+
│ │ │
122+
┌───┴──┐ ┌──┴───┐ ┌──┴────┐
123+
│ KMD │ │SBSYS │ │OS2Forms│
124+
└──────┘ └──────┘ └───────┘
125+
```
126+
127+
### What you get
128+
129+
- **Map:** BPMN process modeling via Flowable's built-in modeler (or BPMN.io added later)
130+
- **Automate:** n8n handles integrations and simple automations
131+
- **Orchestrate:** Flowable manages process execution and human-in-the-loop
132+
- **Analyze:** Platform dashboard shows process stats and ROI to all users; Grafana provides operational monitoring for IT
133+
134+
### What you don't get (yet)
135+
136+
- AI agent orchestration (add LangGraph when ready)
137+
- RPA for legacy desktop apps (add Robot Framework when needed)
138+
- Advanced analytics / ROI measurement (evolve the platform dashboard)
139+
140+
### Strengths
141+
142+
- Three components — manageable to operate
143+
- Fast to stand up (weeks, not months)
144+
- Proves the concept before investing in the full stack
145+
- Each component has a large, active community
146+
147+
### Growth path
148+
149+
```
150+
Minimal stack (Phase 1)
151+
└─ + LangGraph (Phase 2: AI agents)
152+
└─ + Robot Framework (Phase 3: RPA)
153+
└─ + Keycloak (Phase 4: SSO/roles)
154+
└─ + BPMN.io (Phase 5: visual modeler)
155+
```
156+
157+
---
158+
159+
## Two Dashboard Layers
160+
161+
An important distinction: the platform has **two kinds of dashboards** serving different audiences.
162+
163+
### Platform dashboard (built into the app)
164+
165+
This is what all users see — process owners, caseworkers, managers. It shows:
166+
167+
- Active processes, completion rates, task counts
168+
- Hours saved, estimated ROI
169+
- Process bottlenecks (where are things stuck?)
170+
- Personal task overview
171+
172+
This is a custom-built part of the web frontend, pulling data from Flowable's process engine and PostgreSQL. It does not require Grafana.
173+
174+
### Operations dashboard (Grafana — IT/admins only)
175+
176+
This is where IT monitors the platform itself. It shows:
177+
178+
- Infrastructure health — is Flowable responding? n8n queue depth? Database connections?
179+
- Error rates and alerting — "n8n automation X has failed 3 times in the last hour"
180+
- Detailed analytics — ad-hoc queries like "average completion time for building permits by month over the last year"
181+
- SLA monitoring — "3 tasks have breached their 48-hour SLA"
182+
- Resource utilization — CPU, memory, disk across all components
183+
184+
Grafana connects to OpenTelemetry (for infrastructure metrics) and PostgreSQL (for process data). It's accessible via a separate URL or linked from an admin section in the platform.
185+
186+
| | Platform dashboard | Grafana (ops) |
187+
|---|---|---|
188+
| **Audience** | Everyone | IT / admins |
189+
| **Purpose** | Business value, task overview | Infrastructure health, alerting |
190+
| **Data source** | Flowable + PostgreSQL | OpenTelemetry + PostgreSQL |
191+
| **Built by** | Us (part of the app) | Configuration (Grafana dashboards) |
192+
| **Access** | Main navigation | Admin section / separate URL |
193+
194+
---
195+
196+
## Deployment
197+
198+
Both options should be deployed as containers (Docker/Kubernetes) for consistency and scalability. All components support containerized deployment.
199+
200+
### Infrastructure requirements (minimal stack)
201+
202+
| Component | CPU | Memory | Storage |
203+
| ---------- | ----------- | --------- | --------- |
204+
| Flowable | 2 cores | 4 GB | 10 GB |
205+
| n8n | 1 core | 2 GB | 5 GB |
206+
| Grafana | 1 core | 1 GB | 5 GB |
207+
| PostgreSQL | 2 cores | 4 GB | 50 GB |
208+
| **Total** | **6 cores** | **11 GB** | **70 GB** |
209+
210+
This fits comfortably on a single server or a small Kubernetes cluster.
211+
212+
---
213+
214+
## Recommendation
215+
216+
**Start with Option B.** Get a working platform with one real process running end-to-end. Use it to demonstrate value and build organizational buy-in. Then grow toward Option A based on actual needs, not assumptions.

0 commit comments

Comments
 (0)