How this page was generated — pip install to output, unscripted

Running workflow-generator against fastapi/full-stack-fastapi-template, from pip install to this exact page

This is the live output shown in the recording above — nothing below this box has been edited. Source & install →

fastapi-full-stack-template — System Workflow

Component communication map · concurrent request capacity · bottleneck analysis · 2026-07-23

1
API Worker Processes
1 workers × 1 replica(s)
~100
Max Concurrent Async I/O
~100 per asyncio worker
~100 concurrent I/O
Modeled Throughput
static model, not a load test — bottleneck: I/O event loop

Capacity figures are static-analysis estimates (heuristic: ~100 concurrent tasks per async worker), not load-test results.

How was "Modeled Throughput" computed? (static model — click to expand)
Worker processes1
Per-worker concurrency (assumed)100 (async — ~100 concurrent tasks/worker is a heuristic, not measured)
1 workers × 100= 100 concurrency ceiling
Ranked constraints (tightest wins — this is the bottleneck):
1. I/O event loop100 concurrent
Assumptions baked into this model: ~100 concurrent tasks per async worker is a heuristic, not a measurement; an in-flight LLM call is modeled as occupying its slot for the full configured timeout (5000s), though real completions are usually faster. Treat this number as a starting estimate, not a capacity guarantee.
Verify with a real load test (generated k6 script — click to expand)

Pre-filled with up to 5 detected routes. Run this against a staging deploy to replace the model above with a measurement.

import http from 'k6/http';
import { sleep } from 'k6';

// Generated by workflow-generator. Edit BASE_URL, add auth headers,
// and replace any `1` path params with real IDs before running.
// Run: k6 run --env BASE_URL=https://staging.example.com this_file.js
const BASE_URL = __ENV.BASE_URL || 'http://localhost:8000';

export const options = { vus: 10, duration: '30s' };

export default function () {
  http.get(`${BASE_URL}/`);
  http.get(`${BASE_URL}/health-check/`);
  http.get(`${BASE_URL}/me`);
  http.get(`${BASE_URL}/1`);
  http.get(`${BASE_URL}/1`);
  sleep(1);
}
Codebase Graph — 144 modules · 340 real connections

Every node is a real file in this repo; every line is an actual import statement, or a pattern-confirmed service call scanned per-file (the same signal behind the summary below, localized to its source). This is static analysis, not live monitoring — particle motion shows dependency direction (importer → imported), not request traffic. Pass --access-log <path> to overlay real per-route request counts instead. Drag a node, scroll to zoom, click to isolate its connections, or search below.

entry (HTTP clients) module (colored by package) external service (pattern-confirmed) → arrow = "imports / calls" (static — not live traffic) click a node to isolate its call paths (dims everything else); click empty space to clear, type in the search box to highlight by name
Full System Architecture — 4 Components

Detection is pattern-based static analysis. Dashed boxes are dependencies declared in your manifest but not matched to a usage pattern in source — may be wired through a custom abstraction. Solid boxes are pattern-confirmed in source. A component not shown here isn't confirmed absent from the project — only undetected.

EXTERNAL SOURCES & CLIENTS
🌐Users / API Clients
HTTPS / WebSocket
JWT
GATEWAY / REVERSE PROXY
🚦nginx
worker_connections ?
TLS termination
APPLICATION LAYER
⚙️FastAPI
async 1 worker × 1 replica
jwt · oauth
🖥️React
UI framework
PROCESSING & QUEUE LAYER
🔑Auth Middleware
JWT decode · RBAC scope check
STORAGE & PERSISTENCE
🗄️PostgreSQL
Primary database
Detected API Routes (10+)
DELETE /me
DELETE /{id}
DELETE /{user_id}
GET /
GET /health-check/
GET /me
GET /{id}
GET /{user_id}
PATCH /me
PATCH /me/password
Data Flow Paths — Step by Step
HTTP Request Flow
1
Client sends request
HTTPS request to nginx
2
Auth & validation
JWT decode, request validated
3
Handler executes
FastAPI route handler processes request, queries DB
4
Response returned
JSON response sent back to client
Concurrency Model — Layer by Layer
LayerConcurrency ModelCeilingLimiting Factor
Nginx / GatewayEvent-driven (epoll)1024 connectionsworker_connections · no rate limit detected
FastAPI / App Serverasyncio event loop~100 concurrent I/O1 × 1 = 1 workers
Bottleneck Analysis — Where the System Saturates First
I/O event loopCRITICAL
Tightest ceiling among detected constraints: ~100 units of concurrent capacity. Mitigate: add more workers/replicas, or move to an async framework to raise per-worker I/O concurrency.