Skip to content

Infrastructure

Overview of infrastructure components used by the Smartsapp platform. See the project root README.md for an overview of all documentation.


Config and deployment definitions live in infrastructure/, organised into three tiers:

Tier Path Purpose
Cloud environment setup cloud_environment_setup/ Cloud provider IaC, K8s manifests, CDN, provisioning scripts.
Core system dependencies core_system_dependencies/ System primitives the app depends on + open-source service integrations.
Operational utilities operational_utilities/ Observability, backup, analytics, developer tools, cluster management.

Cloud environment setup

Folder Purpose
digitalocean/ DigitalOcean dev deployment. terraform/ for IaC (DOKS, VPC, Postgres, registry); k8s/ for K8s manifests.
cdn/ Edge and CDN. Cloudflare config for DNS, caching, and edge rules.
scripts/ Provisioning scripts (e.g. setup-kubectl.sh).

Core system dependencies

System primitives (system_primitives/)

See infrastructure/core_system_dependencies/system_primitives/README.md for details.

Folder Component Purpose
database Postgres Main application database.
cache Valkey In-memory cache (Redis-compatible) for sessions and hot data.
jobs Temporal Durable workflows, retries, and scheduling.
message_bus Kafka, Redpanda Console Event streaming and async messaging.
ai_harness pg_vector, Ollama Vector store and local LLM/embeddings for RAG.
object_storage Cloudflare R2 S3-compatible blob storage for files, uploads, and assets.

Open-source service integrations (open_source_service_integrations/)

See infrastructure/core_system_dependencies/open_source_service_integrations/README.md for details.

Folder Product Purpose
auth Keycloak SSO, user federation, OAuth/OIDC.
chat Rocket.Chat Team messaging and communication.
notifications Novu Notifications and messaging.
payment_switch Hyperswitch Payment routing and processing.
wallet Formance Wallet and ledger functionality.

Operational utilities

Observability

Folder Purpose
observability/ Metrics, logs, traces, and dashboards. Prometheus (metrics), Loki (logs), Tempo (traces), OpenTelemetry (instrumentation), Grafana (dashboards).
error_tracking/ Error and exception tracking. Sentry for application errors and performance.
analytics/ Product analytics. PostHog for events, funnels, and product usage.

Data operations

Folder Purpose
data_operations/stackgres.yml Postgres operator for Kubernetes. StackGres manages Postgres clusters on K8s.
data_operations/warehouse/ Analytics and ETL. Airbyte for data sync; Postgres as the data warehouse.
data_operations/metabase.yml BI and reporting. Metabase for dashboards and ad-hoc queries over app/warehouse data.

Developer tools

Folder Purpose
developer_tools/sonarqube.yml Static analysis and code quality. SonarQube for security, duplication, and quality gates.
developer_tools/documentation-portal/ Developer portal. Backstage for API docs, service catalog, and onboarding.

Cluster & operations

Folder Purpose
cluster_management/ Kubernetes cluster lifecycle and tooling. Rancher, Devtron, RKE2 for cluster management. Headlamp for cluster visualization.
backup/ Backup and disaster recovery. Velero for K8s backups; object-store backup policy. See infrastructure/operational_utilities/backup/disaster_recovery_guide.md.
project_management/ Planning and delivery. Plane for issues, sprints, and project tracking.