Bunu Neden İnşa Ettim?
"Akıllı TV'de içerik tüketirken izleme kaydı tutma (logging) zorluğunu çözmek için tasarlandı. Hantal TV kumandaları veya kompleks web arayüzleri yerine, state yönetimini Telegram üzerinden dışa açarak kullanıcının mobil cihazından anında kayıt tutmasını ve öneri almasını sağladım. Operasyonel yükü (RDBMS bakımını) sıfıra indirmek için mimari, statik olarak derlenmiş bağımlılıksız bir Rust binary'si ve flat-file depolama üzerine kurgulandı."
Mimari & Kararlar
Sistem, Telegram API kancaları (bindings) için `teloxide` framework'ü ve `tokio` asenkron runtime'ı üzerine inşa edilmiştir. State kalıcılığı flat-file disk I/O ile sağlanır. Tekilleştirme işlemlerini (deduplication) optimize etmek için dosya içerikleri belleğe `std::collections::HashSet` olarak yüklenir, bu sayede yeni eklemeler O(1) karmaşıklığında denetlenir. Mutasyon sonrası state leksikografik olarak sıralanıp diske yazılır (flush). Ayrıca, Telegram'ın katı 4096 byte'lık mesaj sınırını aşmak için payload'ları dinamik olarak bölen özel bir string buffer algoritması (`send_long_message`) entegre edilmiştir.
Temel Özellikler
- 01.`teloxide` REPL mimarisi üzerinden yürütülen asenkron komut yönlendirmesi (routing ve dispatch)
- 02.`HashSet` tabanlı O(1) tekilleştirme ve otomatik sıralama sunan lokal flat-file state kalıcılığı
- 03.Telegram API payload limitlerini by-pass etmek için geliştirilmiş dinamik chunking algoritması
- 04.Hatalı veya eksik kullanıcı girdilerini tolere edip öneri sunan alt-dize (sub-string) çözümleme mekanizması