A good recommendation system design starts with a business goal, not an algorithm. You define what the system should improve, check that your user, item and interaction data can support it, choose a filtering approach to match, and build a pipeline that retrieves, filters, scores and ranks items fast enough for your product. Then you test it online and keep improving it.
This guide walks through each decision in that order. It is written for founders, product owners and technical leads who are about to build a recommender, or who have one that is not delivering.
TL;DR
- Set shared goals first (engagement, satisfaction, responsibility), then pick metrics, then pick algorithms.
- You need three datasets: users, items and an interaction log with timestamps. Split train and test by time, not at random.
- Collaborative filtering needs enough interaction history. Content-based methods work better when items have rich attributes or history is thin. Most production systems blend both.
- Production architecture runs in four stages: retrieval, filtering, scoring and ranking, with heavy computation offline and fresh signals online.
- Offline metrics only indicate quality. Confirm with A/B tests before you call a model a win.
Table of Contents
- What recommendation system design actually covers
- Step 1: Define the objective and the metrics
- Step 2: Get the data right
- Step 3: Choose the approach: collaborative, content-based or hybrid
- Step 4: Design the architecture in four stages
- Real-time recommendations and latency
- Personalization strategies and examples that work
- Step 5: Evaluate offline, then prove it online
- Challenges to plan for from day one
- Our perspective
- Build your recommender with Requestum
- FAQ
- Sources
What recommendation system design actually covers
A recommender is more than a model. Academic work on the topic frames design as a set of linked decisions: stakeholder goals, the characteristics of the domain, functional requirements, filtering techniques, interface design and evaluation. The recommender canvas is one such framework, and it treats those six areas as parts of one plan rather than separate tasks.
A second useful lens comes from research on taking recommenders out of the lab. It grounds design in three models: a user model, a data model and an application model. In plain terms: who are your users and how do they behave, what information do you actually have, and in what environment will the system run? The same source argues that the environment constrains your choices, so you study users, data and application before you choose algorithms or architecture.
That order matters. Teams that open with "let's try a neural network" often find out three months later that the catalog changes hourly, or that the interaction log is too sparse for what they built.
Step 1: Define the objective and the metrics
Before writing code, get product, engineering and business stakeholders to agree on what the recommender is for. The canvas research notes that goals should be shared among stakeholders and typically cover accuracy, coverage, novelty, serendipity, diversity, utility, robustness, privacy and scalability.
You cannot maximize all of these at once. A practical way to choose is to tie the system to a business outcome and write down the trade-offs:
- Retail or marketplace: increase average order value or conversion on product pages. Accuracy and coverage matter, and so does keeping out-of-stock items off the list.
- Media or content app: raise return visits and time spent. Diversity and novelty matter, because a feed of near-duplicates gets stale.
- B2B software: surface the next best feature, report or workflow. Utility and explainability matter more than novelty.
A product-management view of the same problem balances three axes: engagement (such as click-through rate), user satisfaction (such as survey feedback) and responsibility (such as avoiding unsafe content). The framing comes from a practitioner's essay arguing that objectives should be derived from business outcomes, not treated as a purely technical task. Write your own version of those three axes and attach one measurable signal to each.
Step 2: Get the data right
Most recommender projects succeed or fail on data. According to the scikit-rec documentation, a system can draw on three datasets:
| Dataset | What it holds | Examples |
|---|---|---|
| Users | Identifiers and profile attributes | Account ID, region, plan type |
| Items | Attributes and metadata | Category, price, brand, text description |
| Interactions | A log of user actions with outcomes | User ID, item ID, click or purchase, timestamp, device |
The interaction log is the backbone. Context such as timestamps and device type is optional but often valuable, since what someone wants on a phone at lunchtime may differ from what they want on a laptop at night.
Preparing the data
The same documentation lists the preparation work that prevents quiet failures: schema validation, sensible categorical encoding, handling duplicates and missing values, consistent IDs across tables, relevant features, and time-based train/test splits. The last one is the most commonly skipped. A random split lets the model peek at the future, which inflates offline results. Train on earlier behavior and test on later behavior, the way the system will actually be used.
Feature engineering is continuous, not a one-time step. NVIDIA's best-practices guide describes it as aggregating and cleaning raw data into useful features, often kept in a dedicated feature store so that training and inference see consistent values. That consistency prevents a classic bug where a model trains on one definition of a feature and is served another.

How much data is enough?
There is no universal threshold. It depends on the approach, the catalog and the number of users. If you have very little history, start with simple rules, popularity lists and content-based methods, collect interaction data deliberately, and revisit collaborative approaches once the log grows.
Step 3: Choose the approach: collaborative, content-based or hybrid
The two classic families answer different questions. A primer on recommender systems summarizes them this way: collaborative filtering relies on user-item interactions and works well when enough records exist, while content-based recommendation uses a user's past interactions together with item features. The same source notes that item side information can help in sparse regions of the data.
| Criteria | Collaborative filtering | Content-based |
|---|---|---|
| Main input | Who interacted with what | Item attributes plus the user's history |
| Strength | Finds patterns people cannot describe in attributes | Works for new items with good metadata |
| Needs | Enough interaction records | Informative item features |
| Typical risk | Weak when data is sparse | Can over-narrow what users see |
| Good fit | Mature catalogs with lots of activity | New catalogs, niche items, early-stage products |
When to blend them
In practice, most teams end up with a hybrid: collaborative signals for popular items and active users, content features to cover new items and new users. The decision is less about picking a winner and more about which signals you have at each stage of the product's life. A startup launching with a few hundred users will lean on content and simple rules. A marketplace with millions of sessions can afford learned embeddings and deep ranking models.
Step 4: Design the architecture in four stages
A large catalog cannot be scored item by item for every request. The standard production pattern splits the work. NVIDIA's guide describes four stages: retrieving candidates from a large catalog, filtering out invalid items, scoring the remaining candidates with more sophisticated models, and ordering the final list according to business priority and marketing logic.
- Retrieval. Cheap, fast methods narrow millions of items to hundreds. Think embedding similarity, co-purchase lists or popularity within a segment.
- Filtering. Remove what should never appear: unavailable products, items the user already bought, content inappropriate for the audience or region.
- Scoring. A heavier model estimates how likely each remaining candidate is to meet your objective, such as a click, a purchase or a completed view.
- Ranking. Apply business logic to the scores: diversity, promotions, margin, freshness, and limits on how often an item repeats.
Keeping these stages separate lets you improve one without rebuilding the others. You can swap the scoring model while keeping your filtering rules intact, which matters when legal or merchandising teams own those rules.
Real-time recommendations and latency
Serving is where many prototypes break. Microsoft's research on production recommenders notes that production systems must handle latency constraints, often below 100 ms, along with scalability and heterogeneous computing platforms such as distributed clusters and GPUs.
The usual answer is an offline-online split. Netflix describes an architecture in which heavy computation happens offline while real-time signals are handled online, maximizing throughput while keeping response times low. A practical version looks like this:
- Offline: train models, compute embeddings, precompute candidate lists and build features on a schedule.
- Online: fetch precomputed candidates, add live context (the current session, cart contents, location), re-score a short list and return the result within your latency budget.
- Near-real-time layer: stream recent clicks into the feature store so the next page load already reflects what the user just did.
If your product does not need second-level freshness, do not build for it. Hourly or daily refreshes are far cheaper to run and are enough for many catalogs. Reserve streaming pipelines for cases where behavior changes fast, such as feeds, live inventory or short sessions. For more on why this kind of tailoring pays off on the content side, see why personalized content matters.
Also plan the tooling. Common stacks for recommender pipelines use PySpark for data processing, FastAPI for serving and Weights & Biases for experiment tracking, as covered in an O'Reilly book on building recommendation systems in Python and JAX. Your stack may differ, but you need an answer for each of those three jobs.
Personalization strategies and examples that work
Personalization is more than putting a first name in an email. In recommenders it means shaping what each user sees based on what the system has learned. Netflix's industrial-scale tutorial highlights several strategies worth borrowing:
- Optimize for diversity so the list appeals to a user's varied interests, not just their top one.
- Explain recommendations so users understand and trust them, and are more willing to give feedback.
- Use household-level data where several people share one account, to capture broader needs.
All three appear in the tutorial on building industrial-scale recommenders, which also describes how encouraging feedback helps the system improve over time. The lesson for smaller teams: build a feedback loop into the interface from day one. A thumbs-up, a "not interested" button or a saved item is training data you would otherwise never see.
Common use cases
- Ecommerce: "customers also bought" on product pages, personalized home pages, cart add-ons and re-engagement emails. Filtering out-of-stock and already-purchased items is critical here.
- Marketplaces: matching buyers to sellers or listings, where both sides of the market need healthy exposure.
- Media and learning platforms: next video, next article, next lesson, with diversity controls to avoid repetitive feeds.
- B2B and SaaS: suggesting integrations, reports or next steps in a workflow.
- Property and operations software: recommending actions or prioritizing tasks for staff, which blends recommendation with automation.
Step 5: Evaluate offline, then prove it online
Offline evaluation is useful for tuning and picking candidates. It is not proof. Microsoft's guidance is that offline evaluation is often used to select and tune algorithms, while online evaluation with A/B testing and/or multi-armed bandits is recommended, because offline and online results may not correlate well. Netflix takes the same stance: offline performance is an indicator that justifies a follow-up online test, not a replacement for it, as described in its tutorial.
A workable testing routine:
- Start with a clear hypothesis ("showing diverse categories in the first row will raise add-to-cart rate").
- Define control and variant cells and decide the metrics in advance: engagement, retention, conversion.
- Run long enough to cover weekly behavior cycles.
- Review the result alongside guardrail metrics, such as page speed and complaint rates.
Also ask why a number moved. The canvas authors stress that identifying the reasons behind measured performance matters as much as the metric, since a high score can come from unintended biases or over-optimization. A recommender that pushes only bestsellers will post great click-through numbers while quietly shrinking catalog coverage.
After launch, monitor the pipeline itself. Microsoft's guidance includes monitoring pipeline health online and making sure real-time serving meets the business's latency requirements.
Challenges to plan for from day one
- Cold start. New users and new items have no history. Use content features, popularity within a segment, a short onboarding question or editorial picks until behavior accumulates.
- Latency and scale. Budget response time per stage, and decide early which computations are precomputed.
- Business rules. Production systems must respect rules such as country-specific legislation, limits on repeated recommendations and seasonal restrictions. Put these in the filtering and ranking stages so they are easy to change without retraining.
- Bias and feedback loops. If the system only shows what is already popular, it only collects data on what is already popular. Reserve some exposure for exploration and track coverage and diversity alongside clicks.
- Privacy. Collect only the user attributes you need, document how they are used, and check the rules that apply in each region where you operate. Have legal counsel review anything involving sensitive categories.
Our perspective
We see the same pattern across recommender projects: the algorithm is rarely the hard part. The hard part is agreeing on what success means, getting clean interaction data, and wiring the output into a product people actually use.
That is why we begin with business analysis and a discovery phase before any modeling. We map the goal to a metric, audit the data you already have, and decide whether you need a learned model today or a simpler rule-based layer that you can improve as data grows. Teams that skip this step tend to build something technically impressive that does not move a business number.
Once the foundation is set, our AI and data science work is about making the system dependable: feature pipelines that stay consistent between training and serving, an architecture that fits your latency budget, QA that covers the ranking logic and the edge cases, and an experimentation setup so each release is judged by real users. We design the interface together with the model, because explanations, feedback buttons and sensible empty states often decide whether personalization feels helpful or intrusive.
A recommender is a product you keep improving, not a feature you ship once. We build with that in mind.
Dmitry
Build your recommender with Requestum
If you are planning a recommendation engine for an ecommerce store, a marketplace, a content platform or an internal tool, our team can take it from goal-setting to production. Our AI development services cover consulting, integration and custom model work, and AI development engagements are listed on our site at $30,000 to $60,000 one-off. Our data science team can audit your interaction data and prepare it for modeling, and our business analysis work helps you define the objective before any build starts.

Not sure where to begin? Start with a discovery phase to validate the goal, the data and the architecture before you commit to a full build.
FAQ
What is the difference between collaborative filtering and content-based recommendation?
Collaborative filtering learns from user-item interactions, so it works best when you have enough records of who engaged with what. Content-based recommendation uses a user's past interactions together with item features, so it can recommend new items that have good metadata. Many production systems combine the two.
How much data do I need to build a recommendation system?
There is no single number, because it depends on your catalog, your users and the method. You need a user table, an item table and an interaction log with timestamps. If your log is thin, begin with popularity and content-based rules, collect feedback signals, and move to collaborative models as the data grows.
Do I need real-time recommendations?
Only if user behavior or inventory changes fast enough that a stale list hurts results. Many products do well with models trained offline and candidate lists refreshed hourly or daily, plus a light online step that adds session context. Production targets for serving latency are often below 100 ms.
How do I know if my recommender is working?
Use offline metrics to compare candidate models, then run an A/B test against your current experience with metrics set in advance, such as engagement, retention and conversion. Track coverage and diversity too, so a rise in clicks is not hiding an over-narrow list.
What is the best architecture for a recommendation engine?
A four-stage pipeline of retrieval, filtering, scoring and ranking is the common production pattern. Run heavy training and precomputation offline, and keep the online path short so it meets your latency budget.
Sources
- The recommender canvas: a model for developing and documenting recommender system design
- How to get the Recommender out of the Lab?
- Incorporating product management into machine learning
- Datasets, scikit-rec documentation
- Best Practices for Building and Deploying Recommender Systems, NVIDIA
- Recommender Systems: A Primer
- Microsoft Recommenders: Best Practices for Production-Ready Recommendation Systems
- Building Industrial-scale Real-world Recommender Systems
- Building Recommendation Systems in Python and JAX, O'Reilly
- Why personalized content matters
