Skip to main content

Rewards Service

This guide is designed to provide a detailed understanding of the Rewards Service, its functionality, integration options, best practices, and troubleshooting guidelines. Whether you're a developer integrating with our service or an administrator managing its operations, this documentation will serve as your comprehensive reference.

Introduction

The Rewards Service is a versatile platform designed to deliver rewards to users and compute leaderboards based on configurable event triggers defined by clients. By offering a range of operations and robust support for various reward types, the Rewards Service empowers organizations to engage and incentivize their user base effectively.

Key Features

Customizable Rewards

The Rewards Service supports a wide array of reward types, including badges, themes, points, experience, scores and so on. Clients can define and manage these rewards through simple CRUD operations, allowing for tailored incentivization strategies.

Dynamic Leaderboards

Utilizing Redis under the hood, the Rewards Service efficiently calculates and maintains leaderboards based on transactions data. Clients can customize leaderboards dimensions, meaning they will be able to configure leaderboards based on some Competition, Season, Round, Question, Region, or even just based on some group of users (like a Minileague).

Real-time Transactions

Transactions are key for the Rewards Service, representing user interactions that trigger reward allocations. With support for WebSocket connections, clients can receive transaction updates in (near) real-time, enabling timely user engagement and feedback mechanisms.

How it Works

Rewards

Rewards serve as incentives for users to engage with the platform and accomplish specific goals or milestones. Key aspects of rewards include:

  • Diverse Reward Types: The Rewards Service supports various reward types such as badges, themes, points, experience, scores, and so on... serving to diverse user preferences and motivations.
  • Flexible Configuration: Clients can create, update, or delete rewards through simple CRUD operations, enabling dynamic and responsive reward management.
  • Integration with External Systems: Rewards may be integrated with external systems such as media management or theme management systems, enriching the user experience and enhancing engagement.

Transactions

Transactions are pivotal events within the Rewards Service, representing user interactions or accomplishments that trigger reward allocations. Key aspects of transactions include:

  • Immutable Nature: Once created, transactions cannot be modified or deleted, ensuring data integrity and auditability.
  • Real-time Processing: Transactions are processed in near real-time, allowing for timely reward allocations and user feedback.
  • Source of Truth for Leaderboards: Leaderboards are derived from transaction data, providing accurate and dynamic rankings for users.

Leaderboards

Leaderboards offer users a competitive platform to showcase their achievements and compare their performance against peers. Key features of leaderboards include:

  • Dynamic Ranking: Leaderboards are updated dynamically based on transaction data, reflecting the latest user achievements and activities.
  • Customization Options: Clients can customize leaderboards based on various parameters such as leaderboard key (i.e. Competition_MLS, Season_23/24, Round_1), features (i.e. points, experience, scores), and dimensions (i.e. Global, Europe, Minileague_123).
  • Data Integrity Measures: Admin endpoints are provided to reset leaderboards and maintain data integrity, in case of any weird server error, ensuring fair and accurate rankings.