Logo GH

API des Ökosystems

(Abschnitt: Ökosystem und Netzwerk)

1) Ziele und Grundsätze

Die Ökosystem-API ist ein standardisierter Satz von Schnittstellen für die Interaktion der Teilnehmer (Betreiber, Studios, PSP, KYC/AML, Bridges, Analytics). Die Ziele sind:
  • Schnelle, vorhersehbare Integration (Time-to-Integration ↓)
  • Zuverlässigkeit und Skalierbarkeit (SLO, QoS, Backpress).
  • Sicherheit und Einhaltung der Vorschriften (Mindestrechte, Audit).
  • Evolution ohne Pannen (Versionen, Kompatibilität, Ficheflags).

Prinzipien: contract-first, Datenminimierung, Idempotenz, observability-by-default, „two speed“ releases (core vs experimental).

2) API-Taxonomie

1. REST/HTTP - synchrone CRUD/Befehlsoperationen, idempotency-key, pagination/cursors.
2. gRPC/QUIC - niedrige Latenz, Streams, binäre Protokolle.
3. Ereignisse (Pub/Sub) - Domänenereignisse („Einzahlung“, „Auszahlung“, „Brücke“, „Risiko“).
4. Webhooks - Rückbenachrichtigungen mit Signaturen und Retrays.
5. GraphQL (eingeschränkt) - Aggregierte Lesungen über materialisierte Vitrinen.
6. Admin/Meta - Verzeichnisse, Versionen, Status, Schlüssel, Kontingente.

Zugriffsebenen: Öffentlich (eingeschränkte Methoden/Lesen), Partner (Scopes und Quoten), Intern (private Konturen).

3) Verträge und Regelungen

OpenAPI/AsyncAPI/Protobuf IDL ist eine einzige Quelle der Wahrheit.
Datenkontrakte - Kompatibilitätstests, Schaltungslinter, Verbot von „Breaking“ -Feldern ohne MAJOR.
Verzeichnisse: Assets/Netzwerke, PSP/Methoden, Regionen/Jurisdiktionen, SDK-Versionen, Fähigkeitsflags.

Minimaler REST-Vertrag (OpenAPI-Fragment)

yaml openapi: 3. 0. 3 info: { title: Ecosystem Core API, version: "2. 6. 0" }
paths:
/v2/payouts:
post:
operationId: createPayout parameters:
- in: header name: Idempotency-Key required: true schema: { type: string, maxLength: 64 }
requestBody:
required: true content:
application/json:
schema:
$ref: "#/components/schemas/PayoutRequest"
responses:
"202": { $ref: "#/components/responses/Ack" }
"409": { description: "Duplicate (idempotent)" }
components:
schemas:
PayoutRequest:
type: object required: [amount, currency, destination]
properties:
amount:  { type: string, pattern: "^[0-9]+(\\.[0-9]{1,9})?$" }
currency: { type: string, example: "USD" }
destination: { type: string }
metadata: { type: object, additionalProperties: true }

Ereignisse (AsyncAPI)

yaml asyncapi: 2. 6. 0 info: { title: Ecosystem Events, version: "1. 9. 0" }
channels:
payout. finalized:
subscribe:
message:
name: PayoutFinalized payload:
type: object required: [id, ts, amount, currency, status, signature]
properties:
id: { type: string }
ts: { type: string, format: date-time }
amount: { type: string }
currency: { type: string }
status: { type: string, enum: ["finalized","failed"] }
signature: {type: string} # source signature

4) Versionierung und Kompatibilität

SemVer: `MAJOR. MINOR. PATCH`. MINOR/PATCH - rückwärtskompatibel; MAJOR - parallele Versionen ('/v1', '/v2') + Adapter.
Deprection policy: Fenster ≥ 90 Tage, „zwei Zeilen“ Support, automatische Benachrichtigungen über Verträge.
Feature Flags: Aktivieren/Deaktivieren von Feldern/Methoden nach Region/Partner.
Capability Negotiation: Deklariert unterstützte Profile beim Händeschütteln.

5) Idempotenz, Ordnungen und Cursor

Idempotency-Key für Befehle (create/cancel), TTL-Schlüssel ≥ 72 Stunden

Exactly-once Semantik durch outbox/inbox und idempotent consumer.
Paginierung mit Cursor: 'next _ cursor', Widerstand gegen Einfügungen/Löschungen.
Sortierungen und Filter sind stabil, explizit dokumentiert.

6) Sicherheit und Vertrauen

mTLS (service↔service), Sert-Pinning und Schlüsselrotation.
OAuth2/OIDC (Client-Credentials, JWT mit kurzer TTL), PoP/DPoP zum Binden an den Kanal.
Webhook Signaturen (NMAS/Schlüsselversion/Zeit), Wiederholungsschutz.
RBAC/ABAC und PoLP: Scopes, org_id/tenant_id, Objekt-/Operationslimits.
DLP/PII-Minimierung: Verbot von PII in Labels/Logs, Tokenisierung von IDs.
Rate-limits und WAF: per org/route/region, Schutz vor Missbrauch.

Beispielschlüsselrichtlinie (YAML)

yaml auth:
oauth2:
issuer: "https://auth. ecosys"
jwks_uri: "https://auth. ecosys/.well-known/jwks. json"
token_ttl_s: 900 mtls:
required_for: ["internal","partner_p0"]
scopes:
- name: payouts:write
- name: payouts:read
- name: events:subscribe

7) Quoten, QoS und Backpressure

QoS-Klassen: P0 (Auszahlungen/Bridge/Finalisierung), P1 (Produkt), P2 (Masse/Archiv).
Quoten/Limits: RPS, concur-requests, bytes/sec, theme/party for events.
Admission control: frühe Ablehnung von „teuren“ Anfragen, heavy-query-guard.
Backpressure: Token/Credits, Warteschlangen mit DLQ, Retrays mit Jitter.

Kontingentrichtlinie

yaml quotas:
partner_default:
rps: 200 concurrent: 100 webhooks_outbound_rps: 50 p0:
rps: 100 p95_latency_ms: 400

8) Beobachtbarkeit: SLI/SLO, Metriken, Traces

SLI (Kernel):
  • p95/99 latency по маршрутам, Success Rate, Error budget burn, Queue-lag p95, Freshness webhooks, Delivery success%.
  • Vertragskonformität% (Schemas/Signaturen).
  • Webhook retry/dropped%.

SLO (Benchmarks): P0 p95 ≤ 400 ms, Verfügbarkeit ≥ 99. 95%; Webhook delivery p95 ≤ 2 с; Events freshness p95 ≤ 60 с.

Metriken: Latenzhistogramme, Fehlercodes, Antwortgröße, RPS, per-tenant.
Traces: Ende-zu-Ende' trace _ id'(edge→gateway→service→DB→event/webhook).
Logs: strukturiert, ohne PII, Korrelation durch 'request _ id'.

9) Veröffentlichungsmuster ohne Downtime

Blau-Grün/Canary mit SLO-Gates und Outlier-Ejection.
Schema-erste Entwicklung: nur Hinzufügen von Feldern, Adapter für alte Kunden.
Zero-Downtime der DB-Migration: Online-DDL, bidirektionale Konverter.
Änderungskontrolle: Timelock, Audit und Kompatibilitätsregister.

10) Kataloge und Register

API/Versionsregistrierung

sql
CREATE TABLE api_registry(
name TEXT, kind TEXT,      -- rest    grpc    events    webhook version TEXT, status TEXT,   -- active    canary    deprecated    retired slo JSONB, owner TEXT,
PRIMARY KEY (name, version)
);

Ereigniskatalog

sql
CREATE TABLE event_catalog(
topic TEXT PRIMARY KEY,
schema_version TEXT,
qos TEXT,
retention_days INT,
pii BOOLEAN DEFAULT false
);

Schlüssel/Skopes

sql
CREATE TABLE api_keys(
key_id TEXT PRIMARY KEY,
org_id TEXT, scopes TEXT[], status TEXT, expires_at TIMESTAMPTZ
);

11) Prüfung und Einhaltung von Verträgen

Vertragstests: Kundengenerierung, Validierung von Schemata, negative-_cases.
Replay-Tests von Ereignissen: Resistenz gegen Wiederholungen/Nachbestellungen.
Chaos/Lat-Tests: Verlust-/Jitter-Injektionen, langsamer Stor.
Sicherheitstests: Webhook-Signaturen, Schlüsselrotation, Wiederholungsangriffe.
Leistungsprofile: SLA-Adhäsionen, „heiße“ Routen, DA/Abhängigkeitsbrücke.

12) Beispiele für Schnittstellen

Webhooks (Signatur und Retrays)

yaml webhooks:
deliveries:
retry:
attempts: 5 backoff_ms: [200, 800, 1600, 3200, 6400]
jitter: true signature:
alg: "HMAC-SHA256"
header: "X-ECO-Signature"
timestamp_header: "X-ECO-Timestamp"
tolerance_s: 300

GraphQL (Aggregationslesungen, schreibgeschützt)

graphql type Query {
payouts(status: [Status!], first: Int!, after: String): PayoutConnection!
}

gRPC (Ereignisablauf)

proto service EventStream {
rpc Subscribe(SubscribeRequest) returns (stream Event);
}

13) Prozesse und Rollen

API Owner - Vertrag/Version/SLO/Quote.
Sicherheit - Schlüssel/Signaturen/Audit/DLP.
SRE/Ops - Dashboards, Alerts, Kapazität.
Partner Erfolg - Onboarding, Limits, Ficheflags.
Compliance - Jurisdiktionen, Sanktionen, Berichterstattung.

14) Dashboards

Kern-API: Latenz/Fehler/RPS nach Routen und Zelten.
Webhooks: Lieferung p95, Retries, Drops, Unterschriften.
Events: freshness, lag, consumer health, DLQ.
Sicherheit: Schlüssel zum Ablauf, Signaturen, verweigerte Anfragen.
Governance: aktive Versionen/Deprecates, Kompatibilität der Verträge.

15) Playbook der Vorfälle

A. Anstieg der p95-Latenz von P0

1. Aktivieren Sie die Priorität P0 und P2-throttle; 2) Skalieren der Gateways;

2. Umschalten eines Teils der Lesungen auf den Cache; 4) Analyse der „heißen“ Routen.

B. Drop Delivery Webhook

1. Überprüfen Sie Signaturen/Stundenverschiebung, 2) erhöhen Sie Retrays/Timeouts,

2. Batchi aktivieren, 4) vorübergehend zu einem Pull-Endpoint wechseln.

C. Drift Verträge

1. Aktivieren Sie „strict mode“ (schneiden Sie falsche Nachrichten ab),

2. benachrichtigen Sie den Hersteller, 3) lassen Sie den Adapter, 4) post-mortem, aktualisieren Sie die linters.

D. Kompromittierung des Schlüssels/Serts

1. Revoke/rotate, 2) Webhooks neu spielen, 3) auditieren, 4) Partner benachrichtigen.

E. Explosion von Wiederholungen/Takes

1. Überprüfen Sie den Idempotency-Key/TTL, 2) verstärken Sie den Dedup, 3) begrenzen Sie die „laute“ Quelle.

16) Checkliste Umsetzung

1. Beschreiben Sie Verträge (OpenAPI/AsyncAPI/IDL), aktivieren Sie Linter und CIs.
2. Konfigurieren Sie auth (OAuth2/OIDC, mTLS), Webhook-Signaturen, Schlüsselrotation.
3. Kontingente/QoS/Limits, Heavy-Query-Guard und Backpressure eingeben.
4. Erhöhung der Beobachtbarkeit: SLI/SLO, Tracks, Dashboards, Alerts.
5. Organisieren Sie Releases: canary/blue-green, schema-first migration.
6. Versions-/Ereignis-/Schlüsselverzeichnis und Deprecate-Prozesse starten.
7. Chaos/perf/Sicherheitstests durchführen, Playbooks gestalten.
8. Datenminimierung und Compliance regelmäßig revidieren.

17) Glossar

Contract-first - API-Design durch formale Verträge vor dem Code.
Der Idempotency-Key ist der Schlüssel, der die Wiederholung einer Operation sicher macht.
AsyncAPI - Spezifikation von Ereignisschnittstellen.
QoS ist die Dienstqualitäts-/Prioritätsklasse.
DLQ ist eine „tote Warteschlange“ für problematische Nachrichten.
Error budget burn - Geschwindigkeit des „Brennens“ des Fehlerbudgets relativ zum SLO.

Fazit: Die Ökosystem-API ist keine Sammlung von Endpunkten, sondern ein verwaltetes System aus Verträgen, Sicherheit, Quoten und Beobachtbarkeit. Nach diesem Framework erhält das Ökosystem schnelle Integrationen, vorhersehbare SLOs und eine sichere Downtime-freie Evolution - von der Netzwerkschicht und Authentifizierung bis hin zu Ereignisströmen und Berichterstattung.

Contact

Kontakt aufnehmen

Kontaktieren Sie uns bei Fragen oder Support.Wir helfen Ihnen jederzeit gerne!

Telegram
@Gamble_GC
Integration starten

Email ist erforderlich. Telegram oder WhatsApp – optional.

Ihr Name optional
Email optional
Betreff optional
Nachricht optional
Telegram optional
@
Wenn Sie Telegram angeben – antworten wir zusätzlich dort.
WhatsApp optional
Format: +Ländercode und Nummer (z. B. +49XXXXXXXXX).

Mit dem Klicken des Buttons stimmen Sie der Datenverarbeitung zu.