Description
The system architecture of Dsquares has been crafted to provide comprehensive management of loyalty programs from start to finish. It seamlessly handles all steps, right from data collection to the launch of campaigns and messaging processes, ensuring that every step of the pipeline is taken care of. The architecture consists of a diverse range of components, each with a specific role to play, thereby ensuring a streamlined and efficient process.
The components of the system are:
Databases: Stores both raw and processed data. They ensure data persistence and support retrieval operations for the system's various services.
Kafka Clusters: These serve as the primary data ingestion and management hubs. They receive streams of data from various sources and organize them into topics for further processing.
Data Warehousing: The data is streamed from the Kafka Cluster to a Data Warehouse. A DWH is a central repository for storing historical data.
Data Transformation: Data Intelligence takes the streamed data and transforms it into a format suitable for further analysis.
Kafka Queues: Different message queues that are used to buffer data between different components of the system.
Campaign Engine: This component is responsible for managing marketing campaigns. It includes sub-components that handle different aspects of a campaign, such as targeting, content creation, and execution.
Gamification Engine: This engine is designed to create and manage triggers and challenges that are intended to increase user engagement with the system. It achieves this by setting up prompts and tasks that encourage users to take more actions within the system. These challenges can take various forms, such as completing a certain number of tasks within a given time frame or earning rewards for achieving certain milestones.
Rewarding Engine: It processes the campaign content, ensuring that it is formatted and ready for delivery through the appropriate channels.
Redemption Engine: Responsible for claiming the reward from the loyalty systems.
Payment Service: responsible for handling payment processing and integrating with third-party payment aggregators.
Communication Services: These include labeled boxes for SMS, WhatsApp, and email, indicating the system's capability to interact with users across multiple communication channels.
More details about core systems is given in the next section.
A Data Flow Diagram (DFD) is a graphical representation of the flow of data within a system. It's a tool used in the analysis and design phases of software development to depict how data moves through different processes or functions within a system. DFDs are particularly useful for visualizing the interactions between various components of a system and understanding the data transformations that occur at each stage.
Last updated