[CASE STUDY]

shopmonkey logo white (1)

How Shopmonkey built a faster, more scalable, geo-distributed version of their application on CockroachDB

shopmonkey header image
Many automotive care retailers built their business using a phone, paper and pen. However, in today’s tech-forward society, that approach is no longer accepted by customers.

Shopmonkey was founded in 2016 to help automotive care retailers run their end-to-end business. The platform enables shops to streamline operations and gain deeper insights into their business and customers. Shopmonkey has been successful so far – the company reports that they have around 6K customers and are adding several hundred new customers each month.

During their initial phase of hyperscale growth, they needed to find a way to scale their infrastructure so they could accommodate new business. They also needed to ensure they were delivering an ideal customer experience by providing a platform that delivered low latency access regardless of the shop’s location.
shopmonkey logo

[ INDUSTRY ]

SaaS


[ CHALLENGE ]

Finding a scalable solution that could meet sensitive geographical and latency requirements.


[ SOLUTION ]

A geo-aware, highly scalable platform built on CockroachDB.

AUTOMOTIVE RETAIL CUSTOMERS

6K+

SUPER REGIONS

3

OF DATABASE ROWS

Billions

Shopping for new tech

Like many startups, Shopmonkey’s initial focus was finding product market fit. As such, they put together a hodgepodge of technologies and tried to make the system work as they rapidly added customers. In the beginning, this supported their business, but as they started to scale, it was not sustainable.

They were using MongoDB, PostgreSQL and ElasticSearch to run their platform along with multiple different ORM frameworks, dozens of microservices, and Kafka. They were running in a single AWS region and had to implement several workarounds to make the technologies talk to one another.

Not only was this system difficult to scale, but it was also difficult to maintain and guarantee uptime. They also needed a solution that would allow them to deliver low latency to all their retail customers regardless of their location (spread over in the US and Canada).

In summary, Shopmonkey’s requirements included a solution that could…

  • Guarantee always-on availability

  • Scale out to multiple regions as needed

  • Help them adhere to sensitive distance and latency requirements

  • Simplify their architecture

When CTO Jeff Haynie came aboard he suggested that the team evaluate CockroachDB to solve their challenges.

quote

"I had been following CockroachDB for years, but never used it before. When I came to Shopmonkey, it was the first time that I had seen these really sensitive geographic, latency, and availability requirements. CockroachDB was really the only solution in the market."

-Jeff HaynieCTO, Shopmonkey

Purchased a winning solution

After some initial testing, the Shopmonkey team determined that CockroachDB would be a great fit to build their geo-aware platform. Next they had to re-architect their infrastructure and ultimately rebuild their entire application stack on CockroachDB.

Shopmonkey delivers a software-as-a-service that runs in the cloud (on GCP), and they have physical retail locations that the software runs in. Jeff reports that it’s an “interesting architecture” because they run the full stack in three regions with three CockroachDB nodes in each availability zone.

They set up a private link connection between each of the three data centers so they talk to one another. They also leverage CockroachDB’s change data capture (CDC) tool so that they can process real-time changes downstream.

Even though they are running in multiple regions, each region is still considered independent of one another. They use CockroachDB’s regional by row locality feature so the data is stored as close as possible to the physical location of their customer’s shop. The region that is closest to the customer services requests and ensures that they aren’t experiencing high latency.

By running in three regions, Shopmonkey has created a resilient setup. If one region fails, or there’s too much load, they can easily access data from another region.

shopmonkey-map

Since Shopmonkey delivers an end-to-end platform, this encompasses many different types of applications that perform different functions such as front office accounting, customer acquisition, point of sale transactions, supply chain management, etc. They actually have billions of records of data that help their customers run their shops.

Because they built their platform on CockroachDB, they can ensure that their customers can always access applications, guarantee the consistency of their data, and scale out to accommodate new business. This new setup also reduced the amount of time they spend on maintenance and streamlined their infrastructure.

quote

CockroachDB gives us the ability to spin up a new region and our infrastructure just continues to work. We just balance that load to the region where their physical store is located. It’s amazingly simple.

-Jeff HaynieCTO, Shopmonkey

shopmonkey-quote-image

Try before you buy

When it comes to getting started with CockroachDB, Jeff’s word of advice is to “think about distributed SQL differently”. He mentioned that they had to retrain their engineers to understand that CockroachDB doesn’t operate like a normal PostgreSQL database, and that it’s made for more advanced application requirements.

For example, they hone the data in various regions that the store is physically located, so needed to think about how they run queries differently. They also needed to design their tables differently since some data would be global and live in every region, where some of their data would be tied to a specific region. Essentially they had to tune CockroachDB much differently than a traditional single-region database.

A second piece of advice from Jeff is to “pay for Cockroachdb consulting and services - they’ve been amazing”. Shopmonkey selected the managed version of CockroachDB and also engaged in support services to help them rebuild and tune their platform.

quote

"It’s been a really big benefit to have Cockroach Labs consulting services. While the documentation is phenomenal, at the end of the day, you still want to talk to the experts and have that life line available. Our relationship with the team has been really invaluable."

-Jeff HaynieCTO, Shopmonkey

What’s Next

Today, Shopmonkey has over 6,000 customers in the US and Canada. They are focused on expanding their presence in Canada and eventually will expand into Mexico. They hope to grow their customer base by 4,000 over the next year. With over 350,000 automotive care retail locations in the US and Canada alone, there’s a pretty big market for their services.

When it comes to competition, they are really competing against themselves. They need to change automotive care retailer’s mindset about putting down the pen and paper and switching to a digital platform. So far, Shopmonkey has been very successful and will be able to scale out into the future with CockroachDB.

Ready to get started?

Go hands-on with 100% free CockroachDB Serverless. Spin up your first cluster in just a few clicks.

cta-bg