Schematy interakcji uczestnika
(Sekcja: Ekosystem i sieć)
1) Kontekst i cele
Ekosystem posiada wiele podmiotów (operatorów, dostawców, usług płatniczych i KYC, oddziałów, regulatorów, społeczności, deweloperów). „Wzorce interakcji” to zrównoważone sposoby wymiany wartości i danych, które umożliwiają interoperacyjność, bezpieczeństwo, opłacalność i skalowalność.
Cele:- Skróć koszty transakcji i czas integracji.
- Zwiększenie niezawodności i obserwowalności przepływów między węzłami.
- Opóźnienie równowagi i spójność.
- Stosowanie przepisów i zachęty ekonomiczne w protokołach interakcji.
2) Taksonomia uczestników i role
Operatorzy/najemcy: usługi końcowe dla użytkowników, własne usługi pokładowe i UX.
Dostawcy/studios/węzły treści: dostarczyć katalogi/API/wydarzenia, SLA do emisji.
Usługi w zakresie płatności/ryzyka: autoryzacja, rozliczenie, obciążenie zwrotne, punktacja, limity.
Partnerzy/partnerzy: ruch prowadzący, generowanie haków internetowych konwersji, odbieranie raportów.
Regulatory/audyty: wymagają dzienników, raportowania, lokalizacji danych.
Społeczności/programiści: rozszerzenie SDK, tworzenie aplikacji/botów/integracji.
3) Kanały komunikacyjne i transport
Żądania synchroniczne: REST/gRPC dla RQ/RS, WebSockets/SSE dla wydarzeń na żywo.
Autobusy asynchroniczne: Kafka/AMQP/usługi strumieniowe, Pub/Sub dla imprez domenowych.
Webhooks: push kanał do zewnętrznego partnera (wymagane: podpis, timeouts, retrai).
Interfejsy plików/partii: NACHA/CSV/Parkiet do raportowania i zasypywania.
Krawędź/PoP: buforowanie, WAF, limity stawek, walidacja podpisu, redukcja opóźnień.
4) Podstawowe interakcje (schematy warstwy protokołu)
1. Żądanie/odpowiedź (RQ/RS)
Zastosowanie do „decyzji teraz”: autoryzacja płatności, weryfikacja limitów, konfiguracji.
Technicy: timeouts, circuit-breaker, retries z jitter, idempotent keys.
2. Publikacja/subskrybowanie (wywołane zdarzeniami)
Aby rozprzestrzenić fakty: „deal completed”, „balance changed”, „game event”.
Techniki: partycjonowanie kluczy (według user_id/tenant_id), dedup by message-key, long-term storage of the journal.
3. Polecenie/odpowiedź
Wykonaj polecenie z opóźnioną odpowiedzią/korelacją correlation_id.
Techniki: wzorzec skrzynki, gwarantowana publikacja, polecenia kompensacyjne.
4. Webhook Callback
Partnerski odbiór powiadomień z powtarzającą się dostawą (co najmniej raz).
Techniki: podpis żądania, znacznik czasu + anty-replay, iempotencja w odbiorniku.
5. Synchronizacja partii/Delta
Zamknięcia nocne, raportowanie, synchronizacja katalogów.
Techniki: migawki + przyrosty, listy kontrolne, schematy wersji.
5) Koordynacja procesu: orkiestra vs choreografia
Choreografia (wydarzenie): uczestnicy reagują na wydarzenia domeny bez centralnego koordynatora.
Plusy: słaba łączność, skalowalność. Wady: Trudniejsze śledzenie/incydenty.
Orkiestra (sagi): Koordynator zarządza krokami i rekompensatami.
Plusy: przejrzysta kontrola, przewidywalność. Minusy: logiczny punkt koncentracji.
Saga (transakcje kompensacyjne): ciąg kroków z odwracalnymi działaniami w przypadku awarii. W przypadku finansów/bilansów preferowany jest ścisły lider i minimalizacja operacji kompensacyjnych.
6) Spójność i dane
Silne: płatności, limity, statusy KYC (pojedynczy lider, odpis, synchroniczne niezmienne).
Eventual/Timeline: telemetria, katalogi, wydarzenia marketingowe (replikacja asynchroniczna).
CRDT/versioning: dla rzadkich konfliktów w wielopoziomowych scenariuszach.
Outbox/CDC: tak, że wydarzenie jest „zawsze” opublikowane z wpisem w bazie danych.
Identyfikatory: globalne, sortowane (ULID/KSUID), z regionalnymi prefiksami do diagnostyki.
7) Niezawodność i stabilność
Idempotence: klucz na poziomie żądania/wiadomości, dedup w odbiorniku.
Retrai: wykładniczy backoff z jitterem; ograniczenie czasu trwania operacji.
Harmonogram i opóźnienie w budżecie: p95/p99 dla tras krytycznych.
Ciśnienie wsteczne: ograniczenie współistnienia, kolejki, priorytety.
Tryby degradacji: funkcjonalność częściowa w przypadku awarii (pamięć podręczna, operacje odroczone).
Chaos/GameDays: regularne ćwiczenia z symulowanymi awariami integracji i kanałów.
8) Bezpieczeństwo, zaufanie, zgodność
Uwierzytelnianie/autoryzacja: OAuth2/OIDC, mTLS dla S2S, tokenów krótkotrwałych.
Sygnatura wiadomości/webhook: HMAC + timestamp + nonce.
Prywatność/lokalizacja: PII/PCI w „strefie zaufania” regionu, minimalizacja pola danych w zdarzeniach (minimalizacja danych).
Audyt i niezmienne kłody: korelacja przez trace_id, przechowywanie dowodów dostawy/odczytu.
Sekrety i klucze: KMS na region, rotacja, policy-as-code.
Antyfraud i ryzyko: punktacja przy wejściu, granice uczestnika/kanału, sygnały behawioralne.
9) Ekonomia interakcji i zachęty
Umowy monetyzacyjne: RevShare/tantiemy, taryfy API (wielopoziomowe), kary/noty kredytowe dla SLA.
Sprawiedliwe wykorzystanie: kwoty, limity stawek, priorytety według poziomów partnerskich.
Routing kosztowy: jeśli kilku dostawców jest równoważnych w SLA, wybierz bardziej ekonomiczny.
Przejrzysta sprawozdawczość: statusy dostawy, deski rozdzielcze zużycia, limity samoobsługowe.
10) Obserwowalność i SLO
Ślady: trace_id/span_id końcowe w RQ/RS i zdarzenia.
Metryki: latency p50/p95/p99, błąd, kolejka opóźnienia, udział cache hits, egress.
Kłody: ustrukturyzowane, z tenant_id/partner_id/region/release.
Ostrzeganie: SLO na kanał i integracja; Priorytety według oddziaływania przedsiębiorstw (np. Płatności> Telemetria)
11) Ogólne szablony umów
1. Umowa REST/gRPC:
SemVer versioning, wymagane pola: idempotence-key, request-id, trace-context.
Odpowiedzi: kody błędów deterministycznych, podpowiedzi retry, link do statusu operacji asynchronicznej.
2. Umowa o wydarzenie:
Мола: event_id, occurred_at, producent, subject_id, wersja, schema_ref.
Gwarancje: przynajmniej raz, partia kluczowa, TTL/retencja.
3. Umowa Webhook:
Kategorie: podpis, znacznik czasu, nonce, delivery-id.
Zachowanie: 2xx = potwierdzenie; backoff to N hours, idempotencja w odbiorniku.
12) Wzory na pokładzie partnera
Piaskownica i klucze testowe, publiczny katalog API/event, Postman/SDK, przykłady.
Portal samoobsługowy: tworzenie haków internetowych, konfigurowanie filtrów zdarzeń, przeglądanie dzienników dostaw.
Wbudowane szyny ochronne: domyślne limity, ostrzeżenia przed autodegradacją.
Certyfikacja integracji: listy kontrolne, autotesty umów, status „marketplace”.
13) Zagrożenia i działania zapobiegawcze
Synchroniczny „łańcuch domino”: długie RPC na zagranicznych systemach → pliki kaskadowe.
Brak idempotencji: podwójna płatność/zdarzenie.
Programy bez wersji: złamać konsumentów podczas zwolnień.
Globalna „prawda mistrzowska” dla całej domeny: droga/krucha konsystencja międzyregionalna.
Nieprzezroczysta gospodarka: partnerzy nie widzą konsumpcji → konflikty i nieufność.
14) Wskaźniki zdrowotne interakcji
Wskaźnik sukcesu imprezy (%) i średnie opóźnienie.
p95/p99 opóźnienia na trasach krytycznych (płatność, obliczanie wyników).
Błędy 4xx/5xx przez integrację/kanał, incydenty MTTR.
Udział idempotentnie przetwarzanych pobiera, poziom trafień w pamięci podręcznej.
Koszt na 1k żądania/wydarzenia i wyjście przez partnera.
Konwersja partnera na pokładzie: klucz do pierwszego sukcesu.
15) Lista kontrolna wdrażania
1. Klasyfikacja interakcji: synchroniczny vs zdarzenie, spójność krytyka.
2. Zdefiniuj SLO i timeouts, włącz wyłączniki i backoff.
3. Wprowadź idempotencję wszędzie (klawisze, dedup, repliki).
4. Utwórz schemat/wersje kontraktowe i rozszerzenie → migracja → polityka kontraktowa.
5. Włącz podpisy i anty-replay dla haków webowych, KMS per-region.
6. Budowa obserwacji od końca do końca i portali samoobsługowych.
7. Zautomatyzuj certyfikację partnerów i testy regresyjne umów.
8. Budowanie gospodarki: kwoty, limity, sprawozdawczość, routing świadomy kosztów.
9. Regularnie host GameDays dla integracji (degradacja kanału, przekaźniki masy).
10. Zmiana macierzy domeny raz na kwartał: gdzie wzmocnić silne, gdzie osłabić.
16) FAQ
Co wybrać: orkiestra lub choreografia? Dla złożonych i krytycznych procesów - orkiestra; do szerokiego skalowania - choreografia z wyraźnymi umowami.
Jak uniknąć „bierze”? Idempotentne klucze + dedup na odbiorniku + dokładnie raz podobna logika na konsumentów.
Jak przyspieszyć partnera na pokładzie? Piaskownica, gotowe skrypty SDK/przykładowe, automatyczne sprawdzanie haków i strony stanu.
Jak budować zgodność? Zminimalizuj pola PII w zdarzeniach, przechowuj kluczowe operacje w „strefach zaufania”, przeprowadzaj niezmienne audyty.
Podsumowanie: Wzorce interakcji to nie tylko protokoły, ale także połączenie zachęt ekonomicznych, szyn ochronnych i obserwowalności. Formalizowanie umów, dzielenie domen przez spójność, dokonywanie idempotencji i przekłady „domyślnie”, zapewnienie partnerom przejrzystych narzędzi i wskaźników - a ekosystem będzie się rozwijać w sposób zrównoważony i przewidywalny.