Questions
8 of 17
1Design a semantic search system that must support 500 million documents with sub-100ms p99 latency. What are the key architectural decisions?
2How would you plan capacity (RAM, disk, CPU, node count) for a collection of a given size, vector dimensionality, and expected QPS?
3What architectural changes would you make to support near-real-time search over data that changes thousands of times per second (e.g., a live feed)?
4How would you design a system that needs to support both 'search the last 24 hours' and 'search all history' with very different latency expectations?
5What role does caching play in a Qdrant-backed search system, and at what layers would you introduce it?
6How would you decide the initial number of shards for a new collection when the eventual data size is uncertain?
7What is the relationship between shard count and query fan-out cost, and why doesn't 'more shards' always mean 'faster'?
8How many replicas would you configure for a shard serving a mission-critical, read-heavy workload, and what does each additional replica cost you?
9What operational steps are involved in adding a new node to an existing Qdrant cluster and rebalancing shards onto it?
10How does Qdrant's architecture and target use case differ from Pinecone's as a fully managed, closed-source vector database?
11When would you choose pgvector inside an existing Postgres database over a dedicated vector database like Qdrant?
12What distinguishes Qdrant from Weaviate and Milvus at a conceptual level, and what would make you choose one over the others for a given project?
13Under what circumstances would a team be justified in NOT using a vector database at all, and instead using brute-force search or a traditional search engine?
14What is your target Recovery Point Objective (RPO) and Recovery Time Objective (RTO) for a Qdrant deployment, and how do snapshot frequency and replication factor influence each?
15How would you design a disaster-recovery strategy that survives the loss of an entire cloud region?
16What is the operational difference between a rolling upgrade of a replicated cluster and an in-place upgrade of a single-node deployment?
17How would you validate that a newly restored cluster from snapshots is actually healthy and serving correct results before routing production traffic to it?
08 / 17

How many replicas would you configure for a shard serving a mission-critical, read-heavy workload, and what does each additional replica cost you?

Two or three replicas; each adds storage, write propagation, and cost

For a mission-critical, read-heavy workload, the standard answer is replication_factor=2 or 3. Two replicas give you tolerance for a single node failure without an outage and let you distribute read traffic across two copies. Three replicas give you tolerance for two simultaneous node failures and even more read scaling. For most workloads, two replicas is the right default; three is justified when the cost of an outage is very high (financial transactions, medical systems, mission-critical infrastructure) or when the workload must survive two simultaneous failures. Each additional replica costs storage (the replica holds a full copy of the shard's data), compute (the replica runs the same queries if it is used for reads), and write propagation (every write must be applied to every replica, which adds network traffic and latency). The replication factor also affects the Raft quorum: with three replicas, the cluster can tolerate one failure without losing the ability to commit metadata changes.

The mechanism that makes replication valuable for read-heavy workloads is that reads can be distributed across all replicas of a shard, which increases the effective read capacity. With replication_factor=2, you double the read capacity of the shard; with 3, you triple it. This is often more cost-effective than sharding, because it does not add fan-out cost - a read is served by one replica, not by all of them. The write path, however, must propagate every write to every replica, which means the write throughput is bounded by the slowest replica and the network bandwidth between them. The write consistency factor controls how many replicas must acknowledge a write before it is considered successful, which trades write latency for durability. For a read-heavy workload, the write path is not the bottleneck, so the cost of replication is mostly storage and the read capacity benefit is real. For a write-heavy workload, the write propagation cost becomes significant, and the replication factor must be balanced against the write rate.

  1. 1

    Replication factor 1: no tolerance for node failure; shard unavailable if its node fails.

  2. 2

    Replication factor 2: tolerates one node failure; doubles read capacity; doubles storage cost.

  3. 3

    Replication factor 3: tolerates two simultaneous failures; triples read capacity; triples storage cost.

  4. 4

    Write propagation: every write goes to every replica, adding network traffic and write latency.

  5. 5

    Read distribution: reads are spread across replicas, increasing read throughput.

  6. 6

    Raft quorum: with N replicas, the cluster can tolerate floor((N-1)/2) failures for metadata.

  7. 7

    Cost: storage, compute, and network scale with the replication factor.

  8. 8

    Consistency: write_consistency_factor controls how many replicas must acknowledge a write.

The trade-off is between availability/read capacity and cost. Each additional replica costs storage, compute, and network bandwidth, so the question is whether the availability and read scaling justify the cost. For a read-heavy workload where reads dominate and writes are infrequent, replication is often cheaper than sharding because it does not add fan-out. For a write-heavy workload, replication is more expensive because every write must be replicated. The common mistakes are: (1) using replication_factor=1 for a mission-critical workload, which means a single node failure causes an outage; (2) using replication_factor=3 when 2 is sufficient, which wastes storage and write bandwidth; (3) not using the replicas for reads, which defeats the read-scaling benefit; (4) not accounting for the write propagation cost in a write-heavy workload; (5) not testing the failover behavior, so the actual recovery time is unknown. Version note: the replication semantics, the write consistency factor, and the failover behavior have evolved across Qdrant releases. The exact behavior during a replica failure and recovery may differ. Test the failover on your version.

javascript

Version-dependent: the replication API, the write consistency factor, and the failover behavior have changed across Qdrant releases. Some versions have more sophisticated replica placement and faster failover. Verify the behavior on your version with a forced failure test.

Difficulty: 7/10
Topics: Replication, High Availability, Capacity Planning

Scenario Questions

0-2 years experience
  1. 1

    You have a mission-critical collection and a single node failure causes an outage. Explain what replication setting you should have used.

  2. 2

    A teammate uses replication_factor=3 for a write-heavy collection. Explain the write propagation cost.

2-5 years experience
  1. 1

    You need to increase read throughput without increasing shard count. Describe the replication strategy and the trade-offs.

  2. 2

    You want to test the failover behavior of a 3-replica collection. Describe the test you would run.

5-8 years experience
  1. 1

    Design the replication strategy for a mission-critical search system with a 99.99% availability target and a read-heavy workload. Specify the replication factor and the consistency settings.

  2. 2

    You need to reduce infrastructure cost by 30 percent without dropping below the availability target. Describe the levers and the impact of each.

8+ years experience
  1. 1

    Derive the availability of a collection as a function of replication factor and per-node failure rate. What replication factor is needed to hit a 99.99% target?

  2. 2

    You are designing a system that must survive the loss of a data center. Describe the replication and placement strategy, and the trade-offs versus a single-data-center deployment.

Follow-up Questions

  • How would you decide between adding a replica and adding a shard for a read-heavy workload?
  • What write consistency factor would you use for a workload that can tolerate some write latency but not data loss?