Tinder
Mạch tiến hoá
Nhiều năm Tinder dùng một index Elasticsearch cho gợi ý; năm 2019 chia thành 40–100 geoshard cân theo load score trên S2 Tinder 2019. Shard được hiện thực là nhiều index trong một cluster, chốt cỡ bằng performance test, và rải ngẫu nhiên replica để bù lệch tải theo múi giờ; kết quả xử lý gấp 20 lần lượng tính toán Tinder 2019. Vì document dời giữa shard khi user đổi vị trí, họ đưa lệnh ghi qua Kafka theo key, đọc nhất quán mạnh và refeed từ nguồn sự thật Tinder 2019. Ở rìa hệ thống, năm 2022 hơn 500 microservice được gom sau TAG, một framework gateway chung thay cho các gateway bên thứ ba mỗi team một kiểu Tinder 2022. Cùng năm 2019, hệ gợi ý trên Elasticsearch được tối ưu bằng plugin nạp lúc chạy rồi bằng bitmap nén cho danh sách bỏ qua Tinder 2019 Tinder 2019. Trước Swipe Night (10/2019), một tính năng mở cho cả nước cùng lúc kèm push toàn quốc, Tinder load test tới 3 lần traffic thường và diễn tập bằng push thật Tinder 2020. Cùng giai đoạn 2019–2020, nền tảng experimentation Phoenix gồm phần gán thí nghiệm Tinder 2019, remote config để đổi trải nghiệm không cần phát hành app Tinder 2019 và pipeline Spark tính kết quả Tinder 2020.
Timeline
Năm = năm sự kiện theo bài (có thể sớm hơn năm đăng bài).
| Năm | Giai đoạn | Thay đổi | Nguồn |
|---|---|---|---|
| 2019 | 3. Quy mô lớn | Geoshard trên Elasticsearch bằng S2/Hilbert, 40–100 shard toàn cầu. | Tinder 2019 |
| 2019 | 3. Quy mô lớn | Multi-index trong một cluster; performance test; rải ngẫu nhiên replica chống lệch múi giờ. | Tinder 2019 |
| 2019 | 3. Quy mô lớn | Thứ tự ghi qua Kafka, GET + Index thay Reindex, retry có jitter, refeed. | Tinder 2019 |
| 2019 | 3. Quy mô lớn | Elasticsearch plugin nạp jar lúc chạy cho hàm relevance, phát hành qua canary và dark run; latency 500 → dưới 400 ms. | Tinder 2019 |
| 2019 | 3. Quy mô lớn | Danh sách bỏ qua dạng RoaringBitmap thay terms query: latency giảm khoảng 80%, CPU giảm 35–50%. | Tinder 2019 |
| 2019 | 3. Quy mô lớn | Load test cho Swipe Night: môi trường 1/30, traffic production có kill switch, diễn tập bằng push toàn quốc (bài 1/2020). | Tinder 2020 |
| 2019 | 3. Quy mô lớn | Phoenix (experimentation): assignment bằng hash có salt, experiment family, feature gating khác thí nghiệm (phần 1). | Tinder 2019 |
| 2019 | 3. Quy mô lớn | Levers: remote config cho iOS/Android/Web, manifest kiểu + giá trị dự phòng; tách giao trải nghiệm khỏi bản phát hành app (phần 2). | Tinder 2019 |
| 2020 | 3. Quy mô lớn | Pipeline metric thí nghiệm: hơn 80 job Spark/ngày trên EMR, Airflow, kết quả ra RDS; chỉ hiện ý nghĩa thống kê sau 2 tuần (phần 3). | Tinder 2020 |
| 2022 | 3. Quy mô lớn | TAG: gateway chung trên Spring Cloud Gateway thay nhiều gateway bên thứ ba; mỗi team dựng instance bằng cấu hình. | Tinder 2022 |
Concept liên quan
- Chi phí hạ tầng và build vs buy
- Deploy và release an toàn
- Event-driven, message queue và Kafka
- Hạ tầng tìm kiếm
- Hot partition và thundering herd
- Kiến trúc frontend
- Load test và kiểm chứng capacity
- Monolith và microservices — đi và quay lại
- Nền tảng nội bộ cho service (đường ray chung)
- Pipeline dữ liệu và analytics
- Sharding và tách database
- Thử nghiệm A/B và nền tảng experimentation