Documentation

Platform architecture

Overview of the Infoage Cloud Platform architecture and components.

Updated Aug 5, 20255 min read

Platform architecture

The Infoage Cloud Platform (ICP) is a single deployable application that powers every SaaS product built by The Infoage Solutions.

Four-application vision

Application Purpose Technology
ICP.Website Marketing, docs, onboarding Astro + TypeScript
ICP.Admin Internal admin portal React 19 + Vite
ICP.API Single platform API ASP.NET Core 8
ICP.Worker Background processing .NET 8 Worker Service

ICP.API modules

ICP.API is organized into modules but deployed as one application:

Module Responsibility
Identity Users, roles, permissions, JWT auth
Platform Settings Central configuration (gateway, email, WhatsApp, backup, etc.)
Customer Onboarding Registration, domain verification, provisioning
Subscription & Billing Razorpay integration, invoices, webhooks
Domain & SSL DNS verification, Let’s Encrypt, Caddy integration
Gateway Caddy config generation, execution, health
Notification Email + WhatsApp queues, templates, delivery
Backup & Restore MongoDB backups, restore, retention
Monitoring Operations dashboard, health checks
Audit Comprehensive audit logging

Data layer

  • Database: MongoDB (single database icp_platform)
  • Collections: One per entity (customers, products, subscriptions, domains, etc.)
  • Indexes: Optimized for query patterns
  • Transactions: Multi-document where needed

Infrastructure

Component Technology
API Runtime ASP.NET Core 8 on Linux/Windows
Worker .NET 8 BackgroundService
Reverse Proxy Caddy (auto HTTPS, config from platform)
Database MongoDB 6+
Message Queue In-process (worker polls)
Secrets Platform Settings (encrypted at rest)

Security

  • Authentication: JWT access + refresh tokens
  • Authorization: Role-based (SuperAdmin, PlatformAdmin, Operations, Developer, Support)
  • Audit: Every mutating action logged
  • Transport: HTTPS everywhere (Caddy auto-SSL)
  • Rate limiting: Per-endpoint configurable

Scaling

  • Horizontal: Multiple API instances behind load balancer
  • Worker: Single instance (leader election for jobs)
  • Database: MongoDB replica set
  • Caddy: Single instance per server (config reload on change)

Deployment

  • Single binary for API + Worker
  • Configuration: Platform Settings (database-driven)
  • Migrations: Automatic on startup
  • Health checks: /health endpoint for orchestration