Groupon (NASDAQ: GRPN) is building the daily habit in local commerce, offering a vast mobile and online marketplace where people discover and save on amazing things to do, see, eat and buy. By enabling real-time commerce across local businesses, travel destinations, consumer products and live events, shoppers can find the best a city has to offer.
With $2.6B in revenues in 2018, Groupon helps shoppers find the best-personalized experiences a city has to offer by enabling real-time commerce across local businesses, travel destinations, consumer products, and live events. Groupon is redefining how small businesses attract and retain customers by providing them with customizable and scalable marketing tools and services to profitably grow their businesses.
With a complex network of over a million merchants distributed across multiple geographies, the Groupon platform (Groupon and LivingSocial) connects a very elaborate and complex engineering infrastructure at the top of the business funnel with merchants serving over 48 million prospective customers daily across 500+ markets in 15 countries.
We talked with Aditya Athalye, Senior Software Engineer at Groupon, about the company’s digital transformation from legacy monolith to Reactive microservices with Akka and Play Framework by Lightbend.
Reaching out to millions of people each day at the right time–while meeting the stringent SLAs–is critical to the functioning of Groupon’s business. All user outreach is made possible by a set of delivery services which deliver millions of emails and push notifications for the app on a daily basis. These numbers go up even further during the Holiday Season (Black Friday Sale, Cyber Monday, Christmas sale) or special events like Super Bowl.
Minor delays in emails reaching out to end users can result in substantial revenue loss to the company. For example, an email promoting after-work activities targeting 1m Japanese users should be sent between 7-8am, when most are on their way to work and planning the evening’s activities. If it gets sent out at 9am, it’s too late to be effective.
Like most e-commerce companies that started out in the previous decade, Groupon’s platform was largely monolithic in nature. Most of the legacy services were built with Ruby On Rails, though the marketing campaign systems had been overhauled and were largely built in Java. This presented several challenges to Groupon’s growth, such as:
Groupon set out to solve their scalability and extensibility challenges quickly, and elected to break down their legacy monolithic platform into lighter, granular, Reactive microservices. Groupon achieved this by adopting Akka and Play Framework by Lightbend.
Groupon continues to strategically invest in augmenting its engineering capabilities as well as putting in industry best practices to ensure it has top of the line systems to enable a consistently responsive and available online business.
As Lightbend is the leading contributor to the Reactive Manifesto, they have ensured that their tools are always up to the mark and aligned to the evolving needs of modern businesses.
To break down their monolith, a vigorous technology selection process was carried out to ensure that any new technology choices were popular and battle-tested, as well as well-documented, supported by experts, and designed from the core to serve the needs of Reactive microservices. In the end, Akka and Play Framework by Lightbend were selected based on their ability to keep Groupon’s microservices and other critical systems functioning and achieve its business objectives, including:
Companies like Groupon operating an internet business need to be able to handle peak loads during holiday seasons or flash sales, and the Reactive technologies provided by Lightbend go a long way in accomplishing that.
Lightbend technologies have made a significant impact on the daily business of Groupon, enabling a previously unimaginable level of scale for delivering personalized, targeted customer offerings at the right time–especially during peak demand.
Scaling time-sensitive, personalized campaigns to a massive customer base
48 million customers in 15 countries, with millions of communications and hundreds of GBs of data per day
No downtime in 3 years after suffering system failure during Black Friday in the past
7-10x peaks in demand for several hours during holidays and special events
Akka reduced data upload time from 30min to 10min for time-sensitive campaign delivery pulling from Hadoop, RabbitMQ, Cassandra DB
Reduced compute resources by 25% while optimizing performance to handle 600,000 requests/min on a very few physical servers