{"type":"excalidraw","version":2,"source":"https://AwesomeSystemDesign.dev","elements":[{"angle":0,"strokeColor":"#6577aa","backgroundColor":"#eef1fc","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-1"],"frameId":null,"roundness":null,"boundElements":[{"type":"text","id":"shape-1"}],"updated":0,"link":null,"locked":false,"id":"shape-0","type":"rectangle","seed":41,"x":36,"y":32.00000000000001,"width":390,"height":82.80000000000001,"customData":{"revealStep":1}},{"angle":0,"strokeColor":"#394557","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-1"],"frameId":null,"roundness":null,"boundElements":null,"updated":0,"link":null,"locked":false,"id":"shape-1","type":"text","seed":114,"x":56,"y":50.000000000000014,"width":350,"height":46.800000000000004,"fontSize":18,"fontFamily":1,"text":"Parameter | Value | Effect |\nTradeoff","originalText":"Parameter | Value | Effect |\nTradeoff","textAlign":"center","verticalAlign":"middle","containerId":"shape-0","lineHeight":1.3,"autoResize":false,"customData":{"revealStep":1}},{"angle":0,"strokeColor":"#628572","backgroundColor":"#edf5ee","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-2"],"frameId":null,"roundness":null,"boundElements":[{"type":"text","id":"shape-3"}],"updated":0,"link":null,"locked":false,"id":"shape-2","type":"rectangle","seed":187,"x":466,"y":32,"width":390,"height":176.4,"customData":{"revealStep":2}},{"angle":0,"strokeColor":"#394557","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-2"],"frameId":null,"roundness":null,"boundElements":null,"updated":0,"link":null,"locked":false,"id":"shape-3","type":"text","seed":260,"x":486,"y":50,"width":350,"height":140.4,"fontSize":18,"fontFamily":1,"text":"M (connections) | 16-64 | Higher:\nbetter recall\nef_construction | 128-512| Higher:\nbetter index\nef_search | 64-256 | Higher: better\nrecall","originalText":"M (connections) | 16-64 | Higher:\nbetter recall\nef_construction | 128-512| Higher:\nbetter index\nef_search | 64-256 | Higher: better\nrecall","textAlign":"center","verticalAlign":"middle","containerId":"shape-2","lineHeight":1.3,"autoResize":false,"customData":{"revealStep":2}},{"angle":0,"strokeColor":"#a68a53","backgroundColor":"#fff7e6","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-3"],"frameId":null,"roundness":null,"boundElements":[{"type":"text","id":"shape-5"}],"updated":0,"link":null,"locked":false,"id":"shape-4","type":"rectangle","seed":333,"x":36,"y":248.39999999999998,"width":390,"height":270,"customData":{"revealStep":3}},{"angle":0,"strokeColor":"#394557","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-3"],"frameId":null,"roundness":null,"boundElements":null,"updated":0,"link":null,"locked":false,"id":"shape-5","type":"text","seed":406,"x":56,"y":266.4,"width":350,"height":234,"fontSize":18,"fontFamily":1,"text":"Pinecone | Managed, serverless, easy;\nexpensive\nWeaviate | Open-source, hybrid\nsearch built-in\nQdrant | Open-source, fast,\nRust-based\nMilvus | Open-source, distributed,\nGPU-accelerated\npgvector | PostgreSQL extension,\nfamiliar ops","originalText":"Pinecone | Managed, serverless, easy;\nexpensive\nWeaviate | Open-source, hybrid\nsearch built-in\nQdrant | Open-source, fast,\nRust-based\nMilvus | Open-source, distributed,\nGPU-accelerated\npgvector | PostgreSQL extension,\nfamiliar ops","textAlign":"center","verticalAlign":"middle","containerId":"shape-4","lineHeight":1.3,"autoResize":false,"customData":{"revealStep":3}},{"angle":0,"strokeColor":"#a68a53","backgroundColor":"#fff7e6","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-4"],"frameId":null,"roundness":null,"boundElements":[{"type":"text","id":"shape-7"}],"updated":0,"link":null,"locked":false,"id":"shape-6","type":"rectangle","seed":479,"x":36,"y":558.4,"width":597.0522599999999,"height":566.4,"customData":{"revealStep":4}},{"angle":0,"strokeColor":"#394557","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-4"],"frameId":null,"roundness":null,"boundElements":null,"updated":0,"link":null,"locked":false,"id":"shape-7","type":"text","seed":552,"x":56,"y":576.4,"width":557.0522599999999,"height":530.4,"fontSize":17,"fontFamily":1,"text":"How HNSW Works (the index behind vector search)\n\nLayer 2 (sparse): A -------- D\n\nLayer 1 (medium): A --- B -- D --- F\n\nLayer 0 (dense): A - B - C - D - E - F - G - H\n\nSearch for query Q (nearest to Q):\n1. Start at entry point (random node in top layer)\n2. Greedily navigate to nearest node in layer 2\n3. Drop to layer 1, continue greedy search\n4. Drop to layer 0, refine with more neighbors\n5. Return top-K nearest nodes\n\nComplexity: O(log N) search (vs O(N) brute force)\nFor 5B vectors: ~30-40 distance computations (not 5 billion!)\n\nTradeoffs:\n\nVector DB options:\n\nRecommendation: Qdrant or Milvus for production scale\npgvector for < 10M vectors (simpler ops, one DB)","originalText":"How HNSW Works (the index behind vector search)\n\nLayer 2 (sparse): A -------- D\n\nLayer 1 (medium): A --- B -- D --- F\n\nLayer 0 (dense): A - B - C - D - E - F - G - H\n\nSearch for query Q (nearest to Q):\n1. Start at entry point (random node in top layer)\n2. Greedily navigate to nearest node in layer 2\n3. Drop to layer 1, continue greedy search\n4. Drop to layer 0, refine with more neighbors\n5. Return top-K nearest nodes\n\nComplexity: O(log N) search (vs O(N) brute force)\nFor 5B vectors: ~30-40 distance computations (not 5 billion!)\n\nTradeoffs:\n\nVector DB options:\n\nRecommendation: Qdrant or Milvus for production scale\npgvector for < 10M vectors (simpler ops, one DB)","textAlign":"left","verticalAlign":"middle","containerId":"shape-6","lineHeight":1.3,"autoResize":false,"customData":{"revealStep":4}}],"appState":{"viewBackgroundColor":"#fbfbf8","gridSize":null},"files":{}}