İstifadəçilər mesajları real-time görmür, bildirişlər gecikir, onlayn chat yavaşlayır? REST bunun üçün uyğun deyil — WebSocket və ya SSE lazımdır. İkitərəfli rabitə kanalı, ani çatdırılma, Redis Pub/Sub vasitəsilə ölçeklənmə. REST-in aciz qaldığı yerdə işləyir.
Real-time API inkişafı — məlumatların ani çatdırıldığı sistemlərin yaradılmasıdır. Chatlar, bildirişlər, birgə redaktə, birja kotirovkaları, onlayn oyunlar — mesaj çatdırılma sürətinin vacib olduğu istənilən ssenari.
WebSocket — TCP üzərində tam ikitərəfli rabitə kanalı. Minimum gecikmə, yenidən qurulma tələb etməyən daimi əlaqə
Server-Sent Events (SSE) — serverdən brauzerə birtərəfli hadisə ötürülməsi üçün yüngül protokol. Bildirişlər və yeniləmə lentləri üçün
Ölçeklənmə — üfüqi ölçeklənmə üçün Redis Pub/Sub və ya RabbitMQ vasitəsilə WebSocket. Tək qovşaqda minlərlə eyni vaxtda əlaqə.
Təhlükəsizlik — WSS (WebSocket Secure), əlaqə qurarkən autentifikasiya, daxil olan mesajların validasiyası
WebSocket · SSE · Pub/Sub · Redis · WSS
Real-time — geniş spektrli tapşırıqlardır. Sadə bildirişlərdən çoxistifadəçili birgə işə qədər. Xüsusi ssenariyə uyğun protokol seçirik.
Mesajların ani çatdırılması üçün WebSocket. Status dəstəyi: onlayn, offlayn, yazır. Mesaj tarixçəsi, fayllar, reaksiyalar. Qrup və şəxsi chatlar.
Brauzerə yüngül hadisə çatdırılması üçün SSE. WebSocket vasitəsilə Push bildirişləri. Növ, prioritet, istifadəçi üzrə filtrləmə. Zəmanətli çatdırılma.
Birgə redaktə üçün Operational Transform. Kursor sinxronizasiyası üçün WebSocket. Münaqişələrin həlli üçün OT alqoritmləri və ya CRDT.
Real-time — istifadəçinin «niyə səssizlik» düşünməyə macal tapmadan mesajı almasıdır. Gecikmənin saniyələrlə deyil, millisaniyələrlə ölçüldüyü sistemlər qururuq.
Real-time sistemlər təkcə WebSocket deyil. Minlərlə eyni vaxtda əlaqəyə davam gətirən və hər mesajın çatdırılmasını zəmanətə alan arxitektura layihələndiririk.
Əlaqə Arxitekturası — WebSocket vs SSE vs long-polling. Tapşırığa uyğun protokol seçirik. Qrup yayımı üçün otaqlar və kanallar layihələndiririk.
Ölçeklənmə — Qovşaqlar arasında mesaj mübadiləsi üçün Redis Pub/Sub. Paylaşılmış vəziyyətlə WebSocket serverlərinin üfüqi ölçeklənməsi.
Node.js-də Real-time — Socket.IO və ya ws ilə Node.js-də WebSocket serverləri. REST API və mövcud backend ilə inteqrasiya.
Çatdırılma zəmanətləri — at-most-once, at-least-once, exactly-once. Qəbul təsdiqi, əlaqə itkisində yenidən göndərmə.
Monitorinq — aktiv əlaqələrin sayı, bant genişliyi, gecikmələr. Real-time metrikalar üçün Prometheus + Grafana.
REST + WebSocket hibrid — sorğu-cavab üçün REST və push bildirişləri üçün WebSocket. Müasir tətbiqlər üçün optimal arxitektura.
Redis Pub/Sub WebSocket serverlərinin üfüqi ölçeklənməsinə imkan verir. Bir qovşaqda göndərilən mesaj Redis vasitəsilə ani olaraq bütün digər qovşaqlara çatdırılır. Minlərlə əlaqə — tək növbə.
Real-time API sifariş edin — məlumatların ani çatdırıldığı, əlaqələrin etibarlı olduğu və ölçeklənmənin arxitekturaya daxil edildiyi bir sistem əldə edin.
At-least-once və exactly-once semantikasını tətbiq edirik. Müvəqqəti əlaqə itkisində belə mesaj çatacaq — təsdiq növbəsi və təkrar cəhd mexanizmi.
Redis Pub/Sub, WebSocket serverlərinin üfüqi ölçeklənməsi. Tək instansda minlərlə eyni vaxtda əlaqə, klasterdə milyonlar.
Grafana panelləri: aktiv əlaqələr, bant genişliyi, gecikmələr. Əlaqə keyfiyyəti azaldıqda Telegram-da xəbərdarlıqlar.
Real-time — istifadəçinin gözləməməsidir. Gecikmənin millisaniyələrlə ölçüldüyü və əlaqə itkisində belə mesaj çatdırılmasının zəmanətli olduğu sistemlər qururuq.