Recurate is a Series A startup ($17.4M total funding amount) with a growing portfolio of clients. The company offers a resale platform for digital commerce and retail businesses. Recurate is growing fast and with aggressive timelines. Therefore, the executive team has engaged with IO Connect Services to design and implement the next generation of the organization’s resale platform offerings.
Recurate’s MVP is a self-managed semi-monolithic containerized solution that requires constant server rebooting and manual scaling for the proper operation.
The multitenancy approach is rudimentary and delivers content to each client based on a column identifier in the database. This product is a single point of failure, as any application downtime affects all the clients, disrupting the service for everybody. Recurate needed to add more and larger clients to their portfolio. Therefore, a new scalable solution was required to warranty the company’s future success.
At IO Connect Services, we have a cloud-native manifest for startups focusing on business value and product KPIs to build technical solutions. We selected AWS Serverless to shorten development cycles and go to market timelines.
The new platform needed to warranty a real SaaS B2B (business to business) solution. Therefore, we designed the new architecture with the following principal requirements:
We selected DynamoDB as the No-SQL database to keep writing and reading times constant and to keep the schema flexibility of the data stored, as some premium clients could use different data models. Eventual consistency was a crucial factor in designing asynchronous transactions that could help scale the volume substantially.
The partition and sorting keys were selected based on analyzed data access patterns. We designed the tables under the analysis on how users will interact with the data, like retrieving a collection of listings ordered historically by a given seller or the constant read of a given listing identifier. GSIs (Global Secondary Indexes) were also added to fulfill other types of retrievals based on different elements.
We leveraged native DynamoDB Streams to construct an auditable history for all the records inserted in the database. Other applications can obtain historical data without affecting the user transactions’ performance. Also, Kinesis Data Streams consume the events from the DynamoDB Tables to share data events with the rest of the business flows.
The solution provides dedicated tables to each tenant to isolate data and to ensure that no other tenant can access others’ tables via access control lists at the AWS Account, Amazon DynamoDB Service, and Tables. Also, this approach helped guarantee consistent SLAs for each AWS Account since tenants do not compete for service limit quotas, giving control in throughput and having extra capacity of the service limits for unexpected bursts of read or write transactions with the on-demand capacity feature.
One critical decision in selecting Amazon DynamoDB was that the service is well-supported and available in all AWS Regions. Thus, this global availability allows deploying the solution in one or more regions worldwide. With an IaC (Infrastructure as Code) approach, it can get deployed in minutes.
Because all workloads were designed following a serverless approach, the generated code focuses solely on business needs rather than infrastructure or other non-business-related functions. Using serverless shortened development cycles, the project delivery was on time despite the aggressive deadlines and some last-minute changes in requirements.
Recurate worked with IO Connect Services as an extension of their team. Collaboration was in real-time and the same time zone, which is crucial to meeting timelines. Besides, Recurate was able to obtain a substantial cost benefit. On average, our nearshore rates are 30% to 50% of those of onshore resources with similar skills.
We ran a load test to provide consistent numbers in throughput, and the results met expectations based on the architectural and design patterns. Each tenant account can handle gracefully more than one thousand transactions per second (1K TPS). Each request besides JSON payload included a couple of images sizing 2 Megabytes per request. These numbers were reached without increasing service limits in any of the services used, and the tables in DynamoDB performed flawlessly. Therefore, the platform can easily handle hyper-scaling volumes.
As the company continues onboarding new clients, the new customizations - especially those from the external systems and applications - have been included in the existing business logic and tables without disruptions. This has been one approach to extending the platform safely and fast.
Recurate is confident to onboard new clients rapidly. The leadership team is optimistic that the new solution is bringing them to the next level as an organization. They are ready to fast-track new funding rounds with better and proven results.
DynamoDB scales to more than ten trillion daily requests, with over ten million read and write requests per second and petabytes of data storage.
Save money by replacing physical hardware with expensive license fees with AWS services and only pay for what you use.
With DynamoDB, there are no servers to provision, patch, or manage, and no software to install, maintain, or operate. DynamoDB automatically scales tables to adjust for capacity and maintains performance with zero administration.