Realtime Harita Ölçeklemesi: 3 Saklama Penceresiyle Event Yönetimi

Realtime tracking uygulamalarında her olayı sonsuz tutmak sistem maliyetini patlattırır. Sorun şu: bir kurye haritasında typing indicator, read receipt ve GPS konumu aynı şekilde davranmıyor. Biri geçici bir durum, biri iş akışını değiştiren bir geçiş, diğeri sadece son pozisyon önemli. Hepsini "event" olarak tedavi etmek küçük bir haritayı replay faturasına çevirir.

Ellis Vance'in yaklaşımına göre, üç farklı saklama stratejisi işe yarıyor. Typing indicator (görevli not yazıyor) 30, 60 saniye tutulmalı; eski veriler düşürülür çünkü bu sadece anlık mevcudiyettir. Read receipt 7, 30 gün kalmalı; iş akışı durumunu değiştirdiği için bağlantı kopunca yeniden oynatılması gerekir. Courier konumu ise 2, 10 dakikalık delta değişiklikleri artı en son snapshot'ı saklar; harita arkeoloji değil, süreklilik ister.

Teknik olarak bu üç katman şöyle çalışır: kısa, kayıpsız bir stream reconnect için hazır tutulur, kompakt bir snapshot backfill için saklanır, ve harita güncel olduktan sonra gürültü atılır. Sınırları seçmek zor; başlangıç noktası bu tablodur ama senin sistemin (network gecikmesi, veri hacmi, client türü) buna göre ayarlanması gerekir. Telefon yeraltında olsa da her GPS noktasını tutmak gereksiz; son konum yeterli. Ama read receipt'i kaybetmek iş akışını bozar.

Praktik olarak: retention policy'ni event türüne göre ayır, generic bir "tüm olayları tut" yaklaşımından vazgeç. Böyle yapınca reconnect hızlanır, storage maliyeti düşer, harita cevap verme süresi iyileşir.

konu hakkında tepkinizi verebilirsiniz