// Problem

MyJourney łączy podróżnych z kierowcami transferów w całej Europie. Kluczowy moment to oferta przejazdu — jeśli kierowca nie dostanie jej na czas, przejazd przepada. Powiadomienia push czasem jednak zawodzą: zabita aplikacja, utracone połączenie, nieprawidłowy token push. Poleganie na jednym kanale oznacza utracone przejazdy i sfrustrowanych podróżnych.

// Rozwiązanie

Zbudowaliśmy odporny stack powiadomień z trzema skoordynowanymi kanałami: skrzynka w bazie jako źródło prawdy, push FCM do wybudzenia aplikacji i SignalR do przekazu na żywo. Doręczanie jest idempotentne z wykładniczym backoffem (30 s → 6 h) i kolejką dead-letter — żadna wiadomość nie ginie ani nie zostaje wysłana dwa razy. Do tego aplikacja dla kierowcy we Flutterze z GPS offline i modularny monolit .NET, gdzie każda funkcja ma jasne granice.

// Wyniki
  • Trzy kanały doręczania (DB + push + realtime) — żadnej utraconej oferty przejazdu
  • Idempotentne doręczanie z backoffem 30 s → 6 h i dead-letter — przetrwa awarie
  • Aplikacja dla kierowcy we Flutterze — GPS offline, single-flight refresh
  • Modularny monolit .NET — 8 w pełni warstwowych modułów, czyste granice
// Kluczowe metryki
Kanały doręczania
Po 3× redundancja
Ponawianie z backoffem
Po 30 s → 6 h
// Technologie
.NETFlutterSignalRFirebase FCMSQL ServerStripe
// CTA

Chcecie podobnych wyników?

Przejrzymy wasz projekt i zaproponujemy rozwiązanie. Bezpłatna konsultacja.

Umów konsultację