Hybrid Batch and On-Demand Recommendation Engine
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing recommendation systems often face issues where software engineers may not fully understand the logic behind recommendation algorithms, leading to unintended changes, provide stale recommendations, and take excessive time to generate recommendations, potentially frustrating clients and resulting in lost sales.
Innovation Solution
A system that combines batch-processing and on-demand processing to efficiently provide recommendations, utilizing a database for client and item data, executable code for composable algorithms, and an algorithm engine that determines the execution method based on metadata, allowing for real-time or scheduled execution and result caching.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If recommendation algorithms are executed using traditional on-demand processing, then recommendations can be provided in real-time, but the system may take an inordinate amount of time to provide recommendations, frustrating clients and causing lost sales
Solution Approach 1:
The recommendation system is segmented into two distinct processing modes: batch-processing for pre-computing recommendations on large datasets, and on-demand processing for real-time individual recommendations. This segmentation allows the system to handle different types of requests efficiently, reducing overall client waiting time while maintaining comprehensive recommendation capabilities.
Solution Approach 2:
The system performs preliminary action by executing batch-processing tasks that pre-compute recommendations before they are actually needed. These pre-computed results are stored and can be quickly retrieved when clients make requests, eliminating the need for time-consuming real-time computations and significantly reducing client waiting time.
2Ease of manufacture
If software engineers manually manage recommendation algorithms, then they can implement and maintain the system, but engineers may not fully understand the algorithm logic and may inadvertently change functions, reducing reliability
Solution Approach 1:
An intermediary layer is introduced between the software engineers and the recommendation algorithms. This layer provides standardized interfaces and abstraction mechanisms that allow engineers to implement and maintain the system without needing to deeply understand the complex algorithm logic. The intermediary protects the algorithms from inadvertent changes while maintaining ease of system implementation and management.
3Productivity
If recommendation systems use batch-processing for large datasets, then processing efficiency is improved, but recommendations may become stale if not updated frequently enough
Solution Approach 1:
The system implements dynamic processing strategies where the choice between batch-processing and on-demand processing is not fixed but adapts based on the specific requirements of each recommendation request. This dynamics allows the system to maintain high processing efficiency for bulk operations while ensuring recommendation freshness for time-sensitive queries, resolving the contradiction between productivity and reliability.
Data Source
AI summary
Systems and methods described herein, which utilize a combination of batch-processing and on-demand processing to provide recommendations, can include database(s) that store client data, item data, and executable code for composable algorithms that utilize the client data and/or the item data to provide recommendations. The system also includes a batch-process results data store that stores results of composable algorithms executed using batch-processing. Additionally, the system includes an algorithm engine that accepts calls to composable algorithms and output results thereof. The algorithm engine determines which called composable algorithms are designated as being executable using batch-processing, and which are designated as being executable using on-demand processing. The algorithm engine returns results of called composable algorithms designated as being executable using on-demand processing by executing the executable code thereof, and returns results of called composable algorithms designated as being executable using batch-demand-processing by obtaining the results from the batch-process results data store.


