SysPad › Lessons › database lessons › Algolia
How Algolia works
Hosted instant search (the typeahead-interview classic). Sub-30ms queries, priced per 1k searches - and typeahead fires a billable search on every keystroke unless you debounce.
"Design search-as-you-type" is a canonical interview question, and Algolia is the buy-side answer: sub-30ms results with typo tolerance out of the box. The economics have one twist worth internalizing: with instant search, every keystroke is potentially a billable query.
What you will learn
- What does a hosted search engine do that your database cannot?
- Why does typeahead multiply query volume 3-8x?
- Where do debouncing and caching attack the bill?
- When does self-hosted search win the build-vs-buy call?
Why not just SQL LIKE?
Real search needs typo tolerance ("iphnoe" → iPhone), prefix matching at keystroke speed, relevance ranking, facets, and synonyms. Databases index for exact lookups; search engines build inverted indexes for fuzzy human intent. Algolia sells that engine pre-tuned, replicated near users, answering in ~20-30ms.
Keystrokes are the load
Instant search fires a query as the user types. One search intent ("macbook") becomes 3-8 billable requests depending on typing speed and your debounce. At ~$0.50 per 1,000 requests, UX generosity turns directly into invoice lines.
The build-vs-buy line
Algolia's price buys you zero ops, relevance tooling, and speed-to-ship. Sustained high volume flips the math: self-hosted OpenSearch/Typesense/Meilisearch trades an ops burden for a flat infrastructure cost. Teams commonly start on Algolia and revisit at the point where the bill rivals an engineer's time.
⚓ On the SysPad node, "Searches per user action" is the debounce dial: 8 vs 3 at the same RPS nearly triples the cost line. That slider is a UX meeting, monetized.
How does the data get INTO Algolia and stay fresh?
You push records via the indexing API whenever your source of truth changes (an event/outbox pattern in practice). Records are also billed, and the classic incident is an over-eager sync re-indexing everything hourly. Index what users search, not the whole row, and sync on change, not on schedule.
Flashcards
- The search bill doubled after a redesign. The only frontend change: the new search box queries on every keystroke with no debounce. Explain the mechanics and the fix.
- Each keystroke is a billable request, so average-intent queries went from ~3 to ~7+. Restore a 150-250ms debounce and a 2-3 character minimum; consider caching top prefixes.
- A teammate proposes replacing Algolia with `WHERE title ILIKE '%query%'` to save money. What breaks?
- Typo tolerance, ranking, prefix speed (leading-wildcard LIKE cannot use the index), and latency at scale. The cheap version of Algolia is a self-hosted search engine, not the database.
- Search bill spiked with flat query volume. What is the OTHER meter to check?
- Records/indexing operations: a sync job re-pushing the full catalog on a schedule bills heavily without a single extra user search. Sync deltas on change instead.
Sources
Open the SysPad canvas · Official Algolia documentation