Backend Pods

Overview

The UserWise backend is responsible for managing all work that must be done outside the context of an HTTP request, which is handled by the frontend. This includes tasks such as data processing, background operations, and asynchronous communication. The backend currently comprises three separate worker processes: default_worker, player_content_send_worker, and player_data_worker.

Worker Processes and Queues

Each worker process has its own dedicated queue, allowing it to efficiently manage and prioritize its assigned tasks.

  • Player Data Worker: This worker is responsible for processing all new player events and attributes, managing backgrounded segment processing, and handling real-time checks for various triggers that can occur within the UserWise system.

  • Player Content Send Worker: This worker handles the processing of push notifications and emails.

  • Default Worker: This process handles any jobs that are not specifically assigned to the other two worker processes. As the UserWise system grows and evolves, some queues may be moved from the default worker to a more specialized process.

Configuration

All currently supported configuration options for worker pods can be found here: Cluster Configuration (Helm Chart Variables) | Cluster Worker Pod

These configuration options allow you to customize aspects such as worker process concurrency, queue priorities, and resource allocation.

Queue Management

A crucial aspect of configuring the UserWise backend is ensuring that worker queues can keep up with the workload. This involves striking the right balance between the number of worker processes for each type and the available CPU resources to enable effective auto-scaling.

Scaling Considerations

Auto-scaling dynamically adjusts the number of worker processes based on CPU utilization, ensuring that the system can handle varying workloads efficiently. Monitoring CPU utilization and adjusting auto-scaling parameters will help maintain optimal performance and prevent bottlenecks.

By carefully configuring the backend and monitoring key metrics, you can ensure that the UserWise system operates smoothly and efficiently, even under heavy loads.

Powered by UserWise