Demo environment for Hackathon purpose: Single-VM Azure deployment for an AI invoice processing web app. nginx, FastAPI,...
A scalable web application with a load Create a clean, modern architecture diagram for an AI invoice processing platform called Papyr. The style should be professional and minimal, similar to a modern SaaS architecture slide. The diagram shows a single Azure Virtual Machine at the center, containing all services organized in four horizontal layers from top to bottom: **Top layer — Entry Points (left to right):** - A web browser icon labeled "React Dashboard" with subtitle "app.20.118.234.108.nip.io" - A Gmail icon labeled "Gmail Add-on" with subtitle "Google Apps Script sidebar" - A phone/mobile icon labeled "Email Providers" with subtitle "Gmail · Outlook · IMAP" All three entry points point down with HTTPS arrows to: **Second layer — Gateway:** - A single wide box labeled "nginx" with subtitle "TLS Termination · Reverse Proxy · Let's Encrypt HTTPS" - This box spans the full width and sits above everything else - On the right side, a separate box labeled "Keycloak" with subtitle "Identity Provider · Google OAuth · Microsoft OAuth" - Draw a bidirectional arrow between nginx and Keycloak labeled "OAuth broker" **Third layer — Application Core:** - A box labeled "FastAPI" with subtitle "REST API · Business Logic · :8000" - Connected to Keycloak with an arrow labeled "JWT validation" - Below FastAPI, a horizontal row of four worker boxes connected by right-pointing arrows labeled with queue names: 1. "Ingestion Worker" — subtitle: "Polls inboxes every 2 min · AI classifier" 2. "Extraction Worker" — subtitle: "Claude Opus AI · pdfplumber" 3. "Validation Worker" — subtitle: "Claude Haiku AI · tamper detection" 4. "Report Worker" — subtitle: "WeasyPrint PDF" - Above the worker row, a box labeled "Redis" with subtitle "Task Queue · Celery Broker" - Draw arrows from FastAPI down to Redis, and from Redis down to the workers - On the right side of the worker row, a box labeled "Anthropic API" with a Claude logo placeholder, subtitle "Claude Opus (extraction) · Claude Haiku (fraud)" - Draw arrows from Extraction Worker and Validation Worker pointing right to Anthropic API **Bottom layer — Storage:** Three equal boxes in a horizontal row: 1. "PostgreSQL" — subtitle: "Users · Invoices · Vendors · Audit trail" 2. "MinIO" — subtitle: "Raw PDFs · Analysis Reports" 3. "Flower" — subtitle: "Worker monitoring · :5555" Draw arrows from all workers pointing down to PostgreSQL and MinIO. - All running on Docker Compose, single Azure VM balancer, two application servers, and a managed database.
Sign in to join the discussion
Sign in to commentBe the first to comment
Share your thoughts on this architecture
17 days ago
I think the biggest production risk is the mismatch between the described workload and the actual deployment model: everything critical is collapsed onto a single Azure VM behind Application Gateway. nginx, Keycloak, FastAPI, Redis, Celery workers, PostgreSQL/MinIO equivalents, and Flower on one host creates a large blast radius.
Maxwell Famoriyo
@maxwellfamoriyo
Open an interactive version — fork it, generate AI variants, or share it with your team.
Make this template your own
Takes 30 seconds • No credit card required
Estimated monthly cost
$239.94/month
6 cloud services in this architecture
Ready to build this?
Clone this architecture into your workspace and deploy it to your cloud account.
Takes 30 seconds • No credit card required
Please create a cloud architecture for an ad network. Features that we need include: user authentication on our…
Create a global e-commerce platform with multi-cloud redundancy. Use AWS in us-east-1 for the primary application with…
Build a serverless REST API on Azure using Azure Functions, API Management, and Cosmos DB for a globally distributed…
Using Azure, Build an AI agent that maintains its own awesome list using the very model it's curating. Here’s how the…