How Cuboh decreased 100,000-row customer report times from 10’s of seconds to less than 2

The Cube x Cuboh user story.

Cover of the 'How Cuboh decreased 100,000-row customer report times from 10’s of seconds to less than 2' blog post

The Background

Cuboh is a seed-stage restaurant-tech company headquartered in British Columbia. Its SaaS integrates delivery apps—think Postmates—with point-of-sales systems (POS) such as Square and automatically consolidates them into a single tablet. In addition to tablet consolidation, their technology offers centralized reporting and menu management.

In essence, Cuboh saves traditional restaurants, ghost kitchens, and chains from—as CTO & co-founder Brandon Ellis succinctly puts it— “delivery-processing hell.” And its value, market fit, and demand are apparent: so far, the platform has processed +$1B in transactional volume (+50M orders.)

The Challenge

Cuboh processes millions of orders daily, however, Ellis says they hadn’t built their data structure correctly to handle scale. As a result, the team couldn’t query their database for millions of rows efficiently; this led to latency in large customer reporting requests.

To meet this challenge, the team sought to create an appropriate underlying dataset to streamline their ledger-based reporting. After exploring solutions, they initially landed on a Kafka-based streaming platform. However, they realized they needed a more robust solution to handle their large datasets.

The Requirements

Cuboh needed a structure for ledger-based customer reporting that answered the following criteria:

  • Compatible with an underlying relational database
  • Produces low latency requests
  • Handles RESTful API requests
  • Provides near-real-time reporting
  • Self-managed
  • Open source
  • Offers caching for date-based query structures

“With Cube, we reduced the time required to generate real-time and historical reports from 10’s of seconds to less than 2, while reducing our spending on hosting by almost 80%.”

  • Brandon Ellis, Cuboh CTO

The Solution

Ellis and his team discovered Cube in early 2022. After exploring different options, they thought its obvious advantages lay in its open-sourced and self-managed nature, as well as its heavy caching capabilities for date-based query structures.

It took two team members less than a year to facilitate Cube’s implementation on top of a complicated stack: they fit it into Cuboh’s IT infrastructure as a microservice that runs on its own AWS EC2 instance.

Here’s an example of Cuboh’s deployment of Cube.js:

Cube’s compatibility with relational databases, its instant RESTful API, and its advanced, two-level caching system answered Cuboh’s technical requirements. This enabled them to provide performant reporting to their customers while reducing costs.

Ellis credits Cube’s pre-aggregation structure for fewer query metrics directly hitting the database. And with it, Cuboh reduced the time required to generate real-time and historical reports from 10’s of seconds to less than 2.

In terms of cost-efficiency, Cuboh reduced their monthly spending on hosting by around 80% by replacing their previous solution with self-hosted Cube.

Another surprising benefit of Cube? The Cuboh team found that endpoint querying and structuring reports were much easier, knowing there was no need for writing additional back-end code to support specific endpoints.

The Future

As they continue implementing Cube features, the Cuboh team is especially excited about the Cube Store feature release.

And they have some advice for others considering Cube:

”Once you get through the configuration of Cube’s infrastructure, it’s a very easy solution. And remember, once you have solved a problem or two, there is most definitely someone else in the community that could use your help—you may save them hours or days by quickly responding to their question in Slack.”


Have an exciting Cube case study and want to be featured? Drop us a line: hello@cube.dev

Interested in managed Cube Cloud for your data modeling, access control, and caching needs? Request a 1:1, or find us on Slack and Github.

Share this article