Optimizing Loyalty Programs for Speed and Low Latency
In a world where every second counts, brands are now realizing the need to fine-tune their user journeys for optimal speed and low latency – the same goes for loyalty programs. But tuning a rewards program isn’t just about satisfying customers – it's about leveraging the right technology to deliver a loyalty experience that feels instant.
This article looks at how to make your rewards program super fast by focusing on loyalty technology that ensures zero downtime, low latency, and speedy response times.
Key loyalty program metrics
If you’re on the side of the business, I am sure you’re familiar with the most popular loyalty KPIs – enrollment rates, CLV, purchase rates, and whatnot. However, loyalty programs don’t exist solely in the business and marketing sphere – they are perhaps more so than not a grand technological challenge, especially in the context of omnichannel and large-scale deployments.
Here is a short overview of key technical terms that are worth knowing when you are about to start optimizing your loyalty program for speed and resiliency:
1. Loyalty latency
Latency in loyalty programs is the time gap between a user's interaction (such as redeeming points or accessing rewards) and the system's response to that interaction. Optimizing for low latency is crucial to provide members with an instant loyalty experience.
2. System downtime and uptime
Downtime in loyalty programs refers to periods when the program or its systems are not operational, often due to maintenance, updates, or technical issues. During downtime, members cannot access the program, causing frustration and negatively impacting the user experience.
System uptime refers to the percentage of time that the loyalty program and its associated systems are operational and available for users.
3. Transaction speed
Transaction speed refers to the time it takes to process and complete a transaction within the loyalty system. This transaction could involve activities such as earning or redeeming loyalty points or updating a user's account information.
4. System scaling
In the context of loyalty programs, system scaling refers to the ability of the loyalty program's underlying infrastructure to adapt and handle an increasing amount of data, user interactions, and transactions as the program grows in size or user base. Scaling a system involves adjusting or expanding its resources, such as servers, databases, and processing power, to accommodate higher levels of demand without sacrificing performance.
In simple terms, APIs (Application Programming Interfaces) are like bridges that help different software programs talk to each other. In the case of loyalty programs, APIs are essential for making the program work smoothly with other systems, like the ones at the store, online shops, mobile apps, or customer databases.
In loyalty programs, webhooks serve as real-time communication tools, allowing systems to automatically notify each other when specific events occur. They enable instant updates between the loyalty program and external systems, ensuring timely responses to user actions.
How to map member behavior to prepare for a larger scale?
Understanding the technical terms for resilient loyalty programs is just a starting point. The next step is to analyze the performance facet of a loyalty program by dissecting the program mechanics to predict the potential load on the system and designing a time-sensitive use case to be tested on the loyalty platform. Here are the key parameters relevant for predicting the load on the loyalty platform:
1. Member enrollment
Analyze the average monthly enrollment rates and define all workflows associated with enrollment such as creating a new membership in the system, generating and assigning a loyalty card, or granting welcome points.
2. Loyalty transactions
If you are running a transaction-based loyalty program, analyze the number of loyalty transactions in the past 12 months. Each transaction will trigger assignment and recalculation of the loyalty balance, which may put a strain on your loyalty system when faced with traffic peaks.
3. Triggering reward actions
Besides transactions, there can be plenty of other earning rules (reward actions) that members can perform in exchange for points – such as completing a profile, celebrating birthdays, or referring a friend.
Consider these points and estimate how many API calls you need to successfully register and process a custom event and consequently, update the loyalty balance or process an instant reward.
4. Syncing loyalty data
You should verify and define the data model early by translating data and actions into attributes and events that your loyalty system can consume.
At this step, you should also plan the frequency of data sync – whether it’s real-time or asynchronous action performed in bulk at estimated times. In the ideal scenario, you should establish bidirectional data synchronization between your loyalty system and the CRM/CDP platform to ensure that customer data is up-to-date in both systems.
5. Redeeming rewards and other member activities
Members will not only collect points but more importantly spend them. To prepare your loyalty system for peaks, estimate the average number of reward redemptions per member per month. Note that exchanging points for a reward is only the tip of the iceberg as plenty of other processes will run in the background to recalculate the reward eligibility, such as:
- Member viewing their transaction history X times a day.
- Member viewing X product collection X times a day.
- Member logging in to the app X times a day.
- Member viewing checkout X times.
- Member viewing customer wallet X times a day.
To make matters even more complex, members should be able to access and manage their loyalty program activities, such as checking their points balance or redeeming rewards, across all touchpoints.
6. Member-only offers
By defining the number of personalized offers issued to each member per month, you can estimate the monthly count of API calls or webhooks related to offer notifications and redemption.
This estimate will make it easier for your marketing to run campaigns without overloading the system. And this only applies to scheduled campaigns – if you are looking for a more dynamic loyalty experience, such as dynamically displaying available offers per member, you’re looking at much bigger processing power.
7. Loyalty communications
By defining offer types and frequency, you can estimate the number of channels and latency between messages to support different workflows – think of welcome, re-engagement, or upselling workflows.
Any well-implemented program also needs automatic alerts and messages for loyalty program events, like achieving a new level or earning a reward. This ensures timely communication with customers, keeping them informed and engaged in the loyalty program – typically webhooks are used to support these use cases.
Once the audit is completed, you are ready to build the initial POC and answer the following questions that will surely pop up in discussions with internal and external stakeholders, such as your selected loyalty technology vendor.
- What is the estimated number of transactions per month made by members?
- What is the estimated number of reward actions per month per member?
- What is the estimated frequency of reward redemptions per month per member?
- Which API endpoints should be cached or optimized to reduce the number of API calls and minimize payloads for faster processing?
- How many times per month a member will check and refresh loyalty data?
Webhooks or APIs – what’s better for loyalty performance?
Webhooks are a valuable tool for obtaining real-time updates or alerts from your loyalty program. They are particularly useful in situations requiring swift action, such as when a customer achieves a new loyalty level or earns a reward.
APIs are essential for retrieving information, such as checking customer details or utilizing points and vouchers, within your loyalty program. They are particularly valuable when you need specific data for reports, analysis, or custom app development.
All in all, webhooks excel in providing rapid responses to events within your loyalty program, offering quick updates. On the other hand, APIs are better suited for retrieving specific data, making them the go-to choice when detailed queries or integrations are required. For a successful loyalty program deployment, I recommend using a mix of both.
How to optimize the performance of your loyalty program?
Optimizing the speed of a large-scale rewards program involves addressing various aspects of the system, including infrastructure, code, and overall system architecture.
Here are some strategies you can consider:
1. Implement caching
Caching is a method of storing often-used data in a fast-access storage area to make data retrieval faster and more efficient, reducing delays and server workload. Implement caching mechanisms to store frequently accessed data, such as user profiles, loyalty points, and rewards. This can significantly reduce database queries and improve response times.
2. Optimize databases
Make database searches faster by improving queries and setting up indexes correctly; think about spreading the workload across multiple database instances to avoid one system becoming a bottleneck.
3. Introduce load balancing
Use load balancing to share incoming traffic equally among many servers, preventing some from getting overwhelmed and ensuring resources are used efficiently.
4. Use Content Delivery Network (CDN):
A Content Delivery Network (CDN) is a network of distributed servers designed to deliver web content, such as images and scripts, to users more efficiently by reducing latency and improving load times. Use a CDN to cache and deliver static assets (images, stylesheets, scripts) closer to the end-users, reducing latency and speeding up page load times.
5. Implement asynchronous processing
Implement asynchronous processing for non-real-time tasks, such as updating user points or sending notifications. This allows the system to handle a large number of requests without causing delays in the user interface. Why? Synchronous processing is like waiting in line for tasks one by one, while async is doing tasks independently, all at once, without waiting.
6. Keep a close eye on performance and security
Create a system that keeps an eye on how well things are working, and be alerted if there are problems by checking response times, error rates, and resource use. Remember that security vulnerabilities can impact performance and reliability – make sure to thoroughly test any optimizations in a staging environment before deploying them to production to ensure that they do not introduce new issues. Additionally, continuously monitor the system's performance and make adjustments as needed based on real-world usage patterns.
7. Introduce auto-scaling
Implement auto-scaling mechanisms to dynamically adjust the number of instances based on traffic patterns. This ensures that the loyalty system can handle varying loads efficiently.
8. Optimize the loyalty experience
Optimize the loyalty frontend components by minimizing the number of HTTP requests, utilizing browser caching, and employing lazy loading for images and scripts.
How to battle-test your loyalty program speed?
As the saying goes – you won’t know until you try. This is exactly how testing the loyalty performance works. To estimate the resiliency of your loyalty architecture, you should model a mock loyalty scenario and run it in a separate environment.
One example of a time-critical use case worth testing is taking an X number of consumers who make a purchase, and who open an app to check their now-updated loyalty balance within the real-time post-purchase experience.
The goal of the analysis should be to monitor the time needed to calculate points earned with a transaction so that the app can display the rewards a consumer is eligible for while measuring the total number of customer journeys run in parallel (API requests per minute).
By running this type of test, you will learn how many simultaneous member orders and real-time points processing your system can support, and with what average API response times.
How to run a loyalty program peformance test?
To give you an idea of the results you can expect, Voucherify runs regular performance reports. Recently, we were approached by the leading international fuel distributor and retailer to run a loyalty analysis for managing their international loyalty program without downtime.
In this example, the Voucherify loyalty engine could easily handle a large volume of simultaneous member orders with average API response times falling below 50ms. At 5000 rpm, it took 2 seconds on average for loyalty points to be calculated and accrued, after a purchase. In business terms, the API could easily support 2500 end-customers placing orders and checking their updated loyalty balance right at the checkout per minute.
Here is the average latency for loyalty point processing. The Y-axis is in seconds.
How Voucherify helps optimize the loyalty program performance?
Voucherify is a cloud-native SaaS loyalty engine, designed to serve large-scale loyalty deployments concurrently. This cloud-native approach is at the core of our development philosophy.
To bolster the speed and resiliency of our loyalty technology, we implement several best practices for the best loyalty performance:
- Voucherify operates with substantial resource buffers, maintaining usage at around 50% capacity for handling sudden traffic increases.
- Our infrastructure incorporates auto-scaling facilitated by AWS, with stateless apps architecture allowing quick addition of new AWS nodes to the Kubernetes cluster in 1-2 minutes, applications launching in 15-30 seconds, and Postgres database scaling with zero downtime, thanks to a multi-AZ setup with failover configuration.
- We use API rate limiting strategies (per-minute buckets, per project), which can help throttle uncontrolled bursts (e.g., misconfigured 3rd-party integrations), without affecting your standard legitimate traffic.
- We implement internal caching mechanisms on multiple levels (including in-memory, Redis, and Postgres).
- We offload non-critical operations to our queuing systems for async processing. This technique not only allows for faster API responses but also allows for batch processing, which is more resource-efficient, and it offers retrying in case of failures.
- For custom requirements and API response times, Voucherify offers SLAs (Service Level Agreements) to guarantee a specific service level at all times during the subscription period.
- Voucherify is designed to be multi-tenant, allowing multiple customers to share infrastructure and application resources securely without accessing each other's data. On our shared clusters we currently process 100M+ customers total, with 20M+ being members of loyalty programs. However, for many of our enterprise clients, running their traffic through multi-tenant clusters is not an option. An ideal solution for this case is a dedicated infrastructure cluster, which makes large-scale loyalty deployments (up to 100M members) possible.
Building a profitable loyalty ecosystem is not only about rewards that keep customers happy, it’s also about leveraging proper loyalty technology to create a rewards program that provides an instant loyalty experience. By applying the best SRE practices and considering performance right at the start of mapping your loyalty journey, you set yourself up for long-term success.
Build your loyalty program with Voucherify