Consolidating Complex Systems Into a Unified Platform – Onda Digital
Case Study

Consolidating Complex Systems Into a Unified Platform

How a multi-tenant cloud platform traded a sprawl of stateless nano-services for a consolidated, vertical-aligned microservice model.

01

Problem

The multi-tenant cloud platform used stateless nano-service architecture where each service handled a specific workflow operation. As the number of services grew, this drove up both operational overhead and cloud hosting costs, made failures difficult to trace, and grew the dependency graph exponentially.

The target market compounded the problem: the platform needed to run on-prem and airgapped with fixed resources, not just as a centrally hosted cloud service — so any fix had to hold up under constrained infrastructure, not just cut cloud spend.

Before — Nano-Service Lambda Chain
flowchart LR
    Trigger["Knative Event Trigger"] --> GetUser
    subgraph Nano["Nano-Services (one lambda per operation)"]
        direction LR
        GetUser["λ get_user"] --> CheckPerm["λ check_permissions"]
        CheckPerm --> AccessDB["λ access_db"]
        AccessDB --> UpdateRes["λ update_resource"]
        UpdateRes --> TriggerNotif["λ trigger_notification"]
        TriggerNotif --> Resolve["λ resolve_request"]
    end
      
02

Approach

The team analyzed the existing platform architecture to find consolidation opportunities while maintaining operational requirements and scalability. Key examination areas were service scope redesign, event backbone and inter-service communications, platform data models, and existing functionality — including the underlying datastore choice, which had to work equally well centrally hosted and on fixed-resource on-prem deployments.

03

Solution

They implemented a microservice architecture that consolidated services into a more manageable model. Rather than having a service for each step, each service now handled a complete platform vertical, reducing operational costs, simplifying deployments, and improving system efficiency and observability. The datastore was also migrated from FoundationDB to PostgreSQL, easing both operational burden and resource requirements on constrained, on-prem deployments.

After — Entities + Notifications over an Event Backbone
flowchart LR
    Client["Client Request"] --> Entities["Entities Service
generic entity handling + IAM"] Entities --> DB[("User Store")] Entities -->|"entity.updated"| Bus[("NATS JetStream")] Bus --> Notifications["Notifications Service
email + SMS dispatch"]
04

Outcome

95% reduction in hosting cost, from the combination of service consolidation, migrating off non-relational onto relational DB. Delivered on both the centralized cloud platform and fixed-resource on-prem deployments. The platform became “easier to operate, more cost-effective to host and develop, and better positioned to support future growth” by reducing architectural complexity.
Service consolidation Microservices Cost reduction Architecture Simplification Multi-tenant platform