In the product’s earliest iteration, applications built with Dittofi were deployed to the same server that hosted Dittofi’s platform itself. Despite its powerful and expensive server, the platform became unstable and failed several times as the team approached their hundredth deployed application.
In response, the Dittofi team paused new application deployments while they looked to quickly bring a new platform online. This new platform would need to scale horizontally as needed and be resilient to hardware failures. These resiliency and elasticity goals needed to be achieved while ensuring the platform remained performant and cost-effective.
The Dittofi team engaged the Sela team to help it achieve these goals.
An effective hybrid-tenant architecture that spans over multiple accounts and utilizes managed services was designed to support the platform to efficiently serve hundreds of low-code applications while maintaining a high level of isolation and cost-effective resource allocation for each tenant.
Cloud infrastructure was deployed and maintained as code using Terraform and Pulumi, while version control was managed through GitHub.
Each tenant application is deployed to Dittofi's hosting platform with a set of logically, and sometimes physically dedicated resources and components to isolate tenant applications to prevent resource contention issues and enable per-application autoscaling.
Tenant applications are each provisioned with a tenant-specific database and database user in RDS, along with a user for Redis with a set of privileges that allow access to a tenant-specific key prefix. They are also provisioned an ECS service to serve the backend as well as send custom metrics to CloudWatch. The assets are stored in S3 and served by their CloudFront distribution with multiple origins, CloudFront Functions, DNS records, and an optional ACM certificate for custom domain names.
Physical and logical components are all created using a serverless control plane in the form of step functions that are made up of Lambda’s, ECS tasks, EventBridge events, and more.
Dittofi increased customer acquisition and retention while simultaneously offering a more reliable and seamless experience. The platform performs faster and costs less per user to operate. The product is easier to innovate and deploy.