{"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":16,"y":16,"width":288,"height":93.2,"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":36,"y":34,"width":248,"height":57.2,"fontSize":22,"fontFamily":1,"text":"9q8yy0 | 9q8yy1 |\n9q8yy4 | 9q8yy5","originalText":"9q8yy0 | 9q8yy1 |\n9q8yy4 | 9q8yy5","textAlign":"left","verticalAlign":"middle","containerId":"shape-0","lineHeight":1.3,"autoResize":false,"customData":{"revealStep":1}},{"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-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":16,"y":153.2,"width":288,"height":150.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":36,"y":171.2,"width":248,"height":114.4,"fontSize":22,"fontFamily":1,"text":"9q8yy2 | 9q8yy3 |\n9q8yy6 | 9q8yy7\n\n(user)","originalText":"9q8yy2 | 9q8yy3 |\n9q8yy6 | 9q8yy7\n\n(user)","textAlign":"left","verticalAlign":"middle","containerId":"shape-2","lineHeight":1.3,"autoResize":false,"customData":{"revealStep":2}},{"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-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":16,"y":347.6,"width":288,"height":93.2,"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":36,"y":365.6,"width":248,"height":57.2,"fontSize":22,"fontFamily":1,"text":"9q8yy8 | 9q8yy9 |\n9q8yyc | 9q8yyd","originalText":"9q8yy8 | 9q8yy9 |\n9q8yyc | 9q8yyd","textAlign":"left","verticalAlign":"middle","containerId":"shape-4","lineHeight":1.3,"autoResize":false,"customData":{"revealStep":3}},{"angle":0,"strokeColor":"#9180ac","backgroundColor":"#f4effb","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":16,"y":484.8,"width":288,"height":579.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":36,"y":502.8,"width":248,"height":543.4,"fontSize":22,"fontFamily":1,"text":"Geohash Grid\n(zoomed into a city)\n\nUser at 📍 searches\nradius 2 km:\n→ Look up geohash\n\"9q8yy3\" (user's cell)\n→ Also check 8\nneighboring cells:\n9q8yy0, 9q8yy1,\n9q8yy2, 9q8yy4,\n9q8yy5,\n9q8yy6, 9q8yy8,\n9q8yy9\n→ Fetch all\nbusinesses in these 9\ncells\n→ Filter by exact\ndistance ≤ 2 km","originalText":"Geohash Grid\n(zoomed into a city)\n\nUser at 📍 searches\nradius 2 km:\n→ Look up geohash\n\"9q8yy3\" (user's cell)\n→ Also check 8\nneighboring cells:\n9q8yy0, 9q8yy1,\n9q8yy2, 9q8yy4,\n9q8yy5,\n9q8yy6, 9q8yy8,\n9q8yy9\n→ Fetch all\nbusinesses in these 9\ncells\n→ Filter by exact\ndistance ≤ 2 km","textAlign":"left","verticalAlign":"middle","containerId":"shape-6","lineHeight":1.3,"autoResize":false,"customData":{"revealStep":4}},{"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-5"],"frameId":null,"roundness":null,"boundElements":[{"type":"text","id":"shape-9"}],"updated":0,"link":null,"locked":false,"id":"shape-8","type":"rectangle","seed":625,"x":16,"y":1108.2,"width":288,"height":293.40000000000003,"customData":{"revealStep":5}},{"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-5"],"frameId":null,"roundness":null,"boundElements":null,"updated":0,"link":null,"locked":false,"id":"shape-9","type":"text","seed":698,"x":36,"y":1126.2,"width":248,"height":257.40000000000003,"fontSize":22,"fontFamily":1,"text":"How Geohashing\nWorks:\nDivide the Earth's\nsurface recursively\ninto grid cells.\nEach cell gets a\nstring code. Longer\ncode = smaller\ncell.","originalText":"How Geohashing\nWorks:\nDivide the Earth's\nsurface recursively\ninto grid cells.\nEach cell gets a\nstring code. Longer\ncode = smaller\ncell.","textAlign":"left","verticalAlign":"middle","containerId":"shape-8","lineHeight":1.3,"autoResize":false,"customData":{"revealStep":5}},{"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-6"],"frameId":null,"roundness":null,"boundElements":[{"type":"text","id":"shape-11"}],"updated":0,"link":null,"locked":false,"id":"shape-10","type":"rectangle","seed":771,"x":16,"y":1445.6000000000001,"width":288,"height":579.4,"customData":{"revealStep":6}},{"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-6"],"frameId":null,"roundness":null,"boundElements":null,"updated":0,"link":null,"locked":false,"id":"shape-11","type":"text","seed":844,"x":36,"y":1463.6000000000001,"width":248,"height":543.4,"fontSize":22,"fontFamily":1,"text":"Level 1: Divide into\n32 cells → 1 char\n(±2500 km)\nLevel 2: Each cell\ninto 32 more → 2\nchars (±630 km)\nLevel 3: Further\nsubdivide → 3 chars\n(±78 km)\nLevel 4: → 4 chars\n(±20 km)\nLevel 5: → 5 chars\n(±2.4 km)\nLevel 6: → 6 chars\n(±610 m)\nLevel 7: → 7 chars\n(±76 m)\nLevel 8: → 8 chars\n(±19 m)","originalText":"Level 1: Divide into\n32 cells → 1 char\n(±2500 km)\nLevel 2: Each cell\ninto 32 more → 2\nchars (±630 km)\nLevel 3: Further\nsubdivide → 3 chars\n(±78 km)\nLevel 4: → 4 chars\n(±20 km)\nLevel 5: → 5 chars\n(±2.4 km)\nLevel 6: → 6 chars\n(±610 m)\nLevel 7: → 7 chars\n(±76 m)\nLevel 8: → 8 chars\n(±19 m)","textAlign":"left","verticalAlign":"middle","containerId":"shape-10","lineHeight":1.3,"autoResize":false,"customData":{"revealStep":6}},{"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-7"],"frameId":null,"roundness":null,"boundElements":[{"type":"text","id":"shape-13"}],"updated":0,"link":null,"locked":false,"id":"shape-12","type":"rectangle","seed":917,"x":16,"y":2069,"width":288,"height":322,"customData":{"revealStep":7}},{"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-7"],"frameId":null,"roundness":null,"boundElements":null,"updated":0,"link":null,"locked":false,"id":"shape-13","type":"text","seed":990,"x":36,"y":2087,"width":248,"height":286,"fontSize":22,"fontFamily":1,"text":"Example:\nSan Francisco:\n37.7749, -122.4194 →\ngeohash \"9q8yyk\"\nNearby point:\n37.7750, -122.4190 →\ngeohash \"9q8yym\"\nSame prefix \"9q8yy\" →\nboth in same level-5\ncell","originalText":"Example:\nSan Francisco:\n37.7749, -122.4194 →\ngeohash \"9q8yyk\"\nNearby point:\n37.7750, -122.4190 →\ngeohash \"9q8yym\"\nSame prefix \"9q8yy\" →\nboth in same level-5\ncell","textAlign":"left","verticalAlign":"middle","containerId":"shape-12","lineHeight":1.3,"autoResize":false,"customData":{"revealStep":7}}],"appState":{"viewBackgroundColor":"#fbfbf8","gridSize":null},"files":{}}