Stampulse
Platforma lojalnościowa dla lokalnego biznesu — aplikacja mobilna, dwa portale, jeden backend .NET.
- Rola
- Lead engineer
- Okres
- sty 2024 – Obecnie
- Status
- Aktywny
Metryki
- 5Aplikacje w monorepo
- 6Serwisy backendowe
Technologie
- .NETEkspercki
- C#Ekspercki
- ASP.NET CoreEkspercki
- EF CoreEkspercki
- PostgreSQLEkspercki
- RedisPraktyczny
- ReactPraktyczny
- FlutterPraktyczny
- KubernetesPraktyczny
- gRPCPraktyczny
Problem
Papierowe karty pieczątkowe się gubią, a właściciel lokalu zostaje bez żadnych danych — nie wie, kto wraca, jak często i ile jest wart powracający klient. Istniejące aplikacje lojalnościowe rozwiązują to, każąc klientowi zainstalować osobną aplikację dla każdej kawiarni, czego nikt nie robi.
Kształt systemu
Backend to niewielka liczba serwisów, z których każdy jest właścicielem wyraźnie oddzielonych danych: tożsamość, tenanci i lokale, programy lojalnościowe, kampanie oraz raportowanie. Wewnętrznie rozmawiają po gRPC i stoją za jedną bramą. Wszystko, co jest tenant-scoped, nosi id tenanta w modelu danych, zamiast polegać na filtrze w runtime, który jedno zapomniane zapytanie obchodzi.
Co było naprawdę trudne
Ścieżka pracownika. Współdzielone urządzenie za ladą, pracownik, który mógł zacząć tego samego ranka, i klient, który poczeka jakieś dziesięć sekund. To przesunęło sporo złożoności wstecz, do API: idempotentne przyznawanie pieczątek, rozwiązywanie konfliktów dla paczek offline i ślad audytowy, który przeżyje przekazanie urządzenia komuś innemu w środku zmiany.