Building a resilient order management system at scale with GCP

Last edited on August 31, 2023

0 minute read

    Having a reliable order management system (OMS) has always been critical to a wide variety of businesses – that’s been true since the days when taking an order or an appointment meant writing information onto a piece of paper with a rotary phone handset cradled between your ear and your neck.

    Most businesses are taking orders and appointments in a manner that’s much less manual and much more scalable these days, thanks to the help of third-party tools that can provide plug-and-play order management systems to handle sales, orders, inventory, appointments, and much more electronically. Life is easier, and business owners might even have less neck pain.

    But building those third-party systems is a high-stakes endeavour for modern tech businesses like Booksy, a global digital appointment booking service that makes it easy for customers to make appointments at beauty, health, and wellness salons.

    Booksy is a popular service that supported nearly 100 million bookings in 2021 across 25 different countries. But it had to overcome a massive challenge to reach that scale: modernizing outdated infrastructure while growing quickly – and without harming customer satisfaction.

    “Google Cloud and CockroachDB are the building blocks that we use to create a globally available platform.” - Paweł Sobkowiak, CTO, Booksy

    From on-prem monolith to cloud-based microservicesCopy Icon

    Booksy originally launched with on-premises IT and a monolithic application architecture built on top of Postgres. That’s a very common way for startups to get off the ground, and with good reason: it’s quick, relatively easy and cheap, and it’s a well-traveled road that most employees will have experience with (good luck finding a back-end engineer who isn’t familiar with Postgres).

    But single-instance on-prem monoliths don’t scale well, and Booksy quickly became too successful for its startup infrastructure. Quickly embraced by small businesses around the world, the company found itself growing and adding features with increasing speed.

    At one point, the company found itself expecting 10x user growth over two years. And those users were increasingly interested in supplementary services like marketing, sales, and point-of-sale in addition to the basic OMS features. It became clear that a monolithic architecture for Booksy’s product simply wasn’t going to work.

    One problem was scaling: to meet the growing demand, Booksy would have had to scale its on-prem setup vertically, adding and upgrading hardware. Doing this would have eaten an increasingly significant amount of the team’s time, which didn’t make sense – Booksy needed its technical staff focused on delivering and improving great product features to satisfy its customers. It’s also not a great approach for fast-growing companies because ordering, installing, and testing new hardware takes time, even when the supply chain is flowing and everything you need is in stock. If you get a sudden burst of new business, it’ll likely be weeks before you’ve installed the necessary hardware to keep up with it. And at that point, those new customers will be gone, and so will some old ones, because nobody likes using applications that are slow or that go offline.

    And that downtime was another problem. Booksy knew that being reliant on monolithic architecture and an on-prem setup meant that their application wasn’t particularly resilient. A bug or error with one application service could conceivably take out the entire application globally. So could a backhoe accidentally cutting an internet line into their datacenter.

    To continue growing their user base while delivering a quality customer experience, Booksy needed a cloud-first approach that would allow them to scale without hurting performance or compromising the time needed to support the application features. To accomplish that, they Google Cloud and CockroachDB.

    Booksy’s cloud-native architectureCopy Icon

    The move to Google Cloud allowed Booksy to embrace a modern microservices architecture. Splitting the application into many separate services and moving them onto the cloud can add some complexity to development processes, but it also facilitates scaling, as new instances of specific services can be spun up or down in real-time as demand fluctuates. It also increases resilience, as one instance of a service can take over if another fails, and instances can be located across multiple cloud regions to decrease the risk of outages (and reduce latency for users).

    Switching to CockroachDB allowed Booksy to get those same advantages from its database. Since CockroachDB is Postgres-compatible, the move didn’t require a massive overhaul of their persistence layer, and CockroachDB’s inherent resilience and built-in scaling gave them all of the advantages of a complex distributed database without having to bother with the challenges of manual sharding.

    “The most important thing about CockroachDB is that it provides a resilient database at planetary scale without the need of manual management and sharding. And we like their backup and restore features and point in time recovery.” - Pawel

    “Scalability is a big factor because our customers are experiencing huge spikes around the holidays and we need to scale our infrastructure and our database and Cockroach helps us to achieve it.” -Adrian Jarczynski, Lead DevOps Engineer, Booksy

    Resilient inventory management saves moneyCopy Icon

    These infrastructure upgrades made life easier and smoother for Booksy, and they also greatly benefit Booksy’s customers.

    Booksy takes pride in their role supporting small businesses around the world. If their service is not available, even for a few minutes, it could harm many of these small businesses. Inventory management system outages at the wrong time can cost millions. And while small barbershops and salons probably won’t lose that much if Booksy goes down, they certainly could lose customers. And, as a result, Booksy might lose that barbershop.

    Having increased scalability also makes it easier for Booksy to continue growing. Booksy uses Google Cloud’s geo-tagging tools and CockroachDB’s built-in data homing capabilities to help it meet data location-related compliance requirements and expand more quickly into new markets. Locating application services and data closer to its users also enables Booksy to lower latency, improving the application experience for its customers and their customers.

    Choosing the right database and cloud for your order management systemCopy Icon

    If you want to learn more about Booksy’s use case you can check out this case study authored by Google Cloud. And Booksy certainly isn’t the only global retail company that has discovered the advantages of embracing the advantages of CockroachDB: read about more CockroachDB retail use cases here.

    We also recently published an exhaustively-researched report detailing the ways that a distributed SQL database enhances innovation while reducing costs, based on the real-world experiences and data of seven different companies. For example, one well-known retail brand increased its ROI by 149% in its first year of using CockroachDB even though it was moving from a free database (MySQL).

    Customer Story
    Case Study
    Inventory Management