Yıllar önce bir demo toplantısında, 300 araçlık bir lojistik firmasının operasyon müdürü haritadaki araç ikonunu gösterip sordu: "Bu nokta tünele girince ne oluyor?" Basit görünen bu soru, aslında bir araç takip sisteminin kalitesini ölçen en iyi sorulardan biri. Çünkü haritada akıp giden o küçük ikon, arkasında ciddi bir mühendislik zinciri taşıyor — ve zincirin zayıf halkası, kendini tam da tünelde, otoparkta, şebekenin çekmediği şantiyede belli ediyor.
Yıllarımı filo takip sistemleri geliştirerek geçirmiş biri olarak, bir konum verisinin cihazdan yönetici paneline yolculuğunu anlatmak istiyorum. Bu sistemlere para yatıran her yöneticinin bilmesi gereken bir hikâye bu; çünkü satın alma görüşmesinde doğru soruları ancak yolculuğu bilen sorabiliyor.
Yolculuk araçta başlıyor: cihazın gördüğü dünya
Araçtaki telematik cihaz sanıldığından fazlasını toplar: GPS konumu ve hızın yanında kontak durumu, ve CAN-Bus hattına bağlıysa motorun kendi anlattıkları — yakıt seviyesi, devir, arıza kodları. CAN-Bus bağlantısı, "haritada nokta gösteren cihaz" ile "filo yönetim sistemi" arasındaki ilk büyük ayrımdır; motor verisi olmadan yakıt analizi de arıza öngörüsü de hikâyedir.
Kalite farkı da burada başlar. Ucuz cihaz tünelde ve kapalı otoparkta kör kalır; iyi cihaz ölü hesap (dead reckoning) ile son bilinen hız ve yönden konumu tahmin etmeye devam eder. Şebeke yokken veri cihazın belleğinde birikir, bağlantı geri gelince sıralı şekilde boşalır. Operasyon müdürünün sorusunun cevabı buydu: doğru kurulmuş bir sistemde araç tünelde "kaybolmaz"; veri gecikir ama asla uçmaz. O toplantıda cihazın tampon belleğinin kaç kayıt tuttuğunu konuşmaya başladığımızda, müdürün not defterine sarıldığını hatırlıyorum — kimse ona bu soruyu sormayı öğretmemişti.
Saniyede yüzlerce mesaj: veriyi karşılayan mutfak
Şimdi ölçeği görelim. Bin araçlık bir filo, 10 saniyede bir veri gönderdiğinde günde yaklaşık 8,6 milyon kayıt üretir. Bu, "bir web sitesi trafiği" değil; sürekli akan, durmayan, yoğun saatte katlanan bir sel. Akış, TCP veya MQTT üzerinden alım sunucularına düşer ve ilk iş olarak bir kuyruk sistemine (message queue) yazılır.
Kuyruk, sistemin şok emicisidir ve bence bütün mimarinin en az takdir edilen parçasıdır. Panel bakımda mı? Rapor servisi güncelleniyor mu? Veritabanında yoğunluk mu var? Kuyruk sayesinde hiçbir veri kaybolmaz; işlenecekler sırada bekler, sistem toparlanınca kaldığı yerden devam eder. Kuyruksuz kurulmuş sistemlerde her bakım penceresi bir veri kaybı penceresidir — ve kayıp veri, ay sonunda "şu aracın km raporu neden eksik" tartışması olarak geri döner.
Bu katmanın gizli kahramanı da protokol çevirmenleridir. Piyasadaki her cihaz markası kendi binary diliyle konuşur; alım katmanı bu dillerin her birini ayrıştırıp ortak bir iç formata çevirir. Karma filolarda (çalıştığım bir filoda dört ayrı marka cihaz vardı — satın almalarla büyüyen filoların kaderi) sistemin değeri, kaç cihaz diliyle sorunsuz konuşabildiğiyle doğrudan ilişkilidir. "Sadece kendi cihazımızla çalışırız" diyen tedarikçi, aslında size cihaz değiştirme faturasını da kesiyordur.
Depolama tarafında bu hacim, klasik tablolara alışıldık şekilde yazılarak yönetilemez. Zaman serisi optimizasyonlu depolama ve aylık partisyonlama, milyarlarca kaydı hem yazılabilir hem sorgulanabilir tutar. "Geçen yıl mart ayında bu araç nerelerdeydi" sorusunun üç saniyede cevaplanması, tesadüf değil, bu tasarımın sonucudur.
Ham konumdan işe yarar bilgiye
Açık konuşayım: ham konum verisi tek başına neredeyse değersizdir. Enlem-boylam yığınına bakarak filo yönetilmez. Değer, kural motorunda üretilir — coğrafi çit ihlali ("araç depo bölgesinin dışına çıktı"), rölanti tespiti ("kontak açık, 12 dakikadır hız sıfır"), hız ihlali, mesai dışı kullanım, rota sapması. Her kural tetiklendiğinde bildirim, rapor satırı ya da panelde canlı uyarı olarak yöneticinin karşısına çıkar.
Yakıt tasarrufunun matematiği de burada saklı. Bir projede sadece rölanti raporunu haftalık olarak sürücülerle paylaşmak — başka hiçbir şey yapmadan, sadece görünür kılmak — aylık yakıt giderini hissedilir şekilde aşağı çekti. Sürücüler izlendiğini bildiği için değil; çoğu, molada kontağı açık unutmanın aylık maliyetini ilk kez rakam olarak görmüştü. Veri davranışı değiştirir, ama ancak anlamlı hale getirilirse. Panelde duran milyonlarca kayıt kimseyi ikna etmez; "bu ay rölantide yakılan yakıt: şu kadar litre" cümlesi eder.
Yolculuğun son durağı yönetici paneli — ve burası göründüğünden naziktir. İyi panel, bin aracın anlık durumunu tek harita yerine önceliklendirilmiş özetlerle sunar: hangi araçlar uyarıda, hangi bölgede yoğunluk var, dünle kıyasla ne değişti. Kötü panel her şeyi aynı anda gösterir ve yönetici iki hafta sonra bakmayı bırakır. Bir de işin hukuki katmanı var: konum verisi kişisel veridir; mesai dışı takip kuralları, sürücü bilgilendirmesi ve KVKK uyumu, sistemin tasarımına en baştan girmelidir. Sonradan eklenen uyum, hiçbir zaman tam oturmaz — bunu geçmişteki düzeltme projelerinden biliyorum.
Satın alma masasında sorulacak üç soru
Bu yolculuğu bilen yönetici, tedarikçi karşısına bambaşka oturur. Benim önerdiğim üç soru şu. Birincisi: veri kesintisinde ne olur — cihaz tamponluyor mu, tamponun kapasitesi ne? Tünel sorusunun teknik hali budur ve kaçamak cevap verilen her demo, bir uyarı işaretidir. İkincisi: geçmiş veri ne kadar süre ve hangi çözünürlükte saklanıyor? "Bir yıl saklıyoruz" cevabının içini açtırın; ham veri mi duruyor, yoksa saatlik özete mi inceltiliyor? Kaza günü mahkemeye sunacağınız veri, özetlenmiş veri olamaz; sigorta itirazında da saniye çözünürlüğü fark yaratır. Üçüncüsü: sistem dışarıya API veriyor mu? Bugün ERP'nize, yarın yapay zeka asistanınıza bağlamak isteyeceksiniz — 2026'da filo verisini doğal dille sorgulamak artık lüks değil, beklenti. Kapalı kutu sistem, üç yıl sonra değiştirme maliyeti olarak karşınıza çıkar.
Bu üçüne net cevap veremeyen sistem, ne kadar şık bir haritası olursa olsun, sadece ikon gösteren pahalı bir oyuncaktır. Fiyat farkı sizi yanıltmasın; ucuz sistemle pahalı sistem arasındaki fark demoda görünmez, on sekizinci ayda — ilk ciddi kaza dosyasında, ilk büyük veri talebinde — görünür.
Bu zincirle işim bitmiş de değil: bugün çalıştığım platformun kurye operasyonunda aynı zincirin bir versiyonu dönüyor — telematik cihaz yerine kurye telefonu, CAN-Bus yerine sipariş durumu; ama tampon bellek, kuyruk ve kural motoru aynen yerinde. 2010'dan beri bu zincirin her halkasını defalarca kurdum; hangi sorunun hangi katmanda çözüleceğini haritada ikon izleyerek değil, mutfakta pişirerek öğrendim. Mevcut takip sisteminizden şüpheniz varsa işe verinizin yolculuğunu uçtan uca çizmekle başlayın; zincirin fotoğrafı çekildiğinde, zayıf halka kendini zaten gösteriyor. Bu konuları konuşmayı severim; iletişim sayfası açık.