Zum Hauptinhalt springen

API-Architekturen im Überblick

Worum geht's?

β€žAPI" ist ein Sammelbegriff fΓΌr sehr unterschiedliche Kommunikationsmuster. Manche sind synchron, manche streamen, manche pushen. Dieser Guide ordnet die gΓ€ngigen API-Architekturen ein – mit klaren Vor- und Nachteilen und konkreten Einsatzgebieten. Ein passender Laravel-Implementierungs-Guide liegt unter Laravel-API-Guide.

1. Schnell-Entscheidungshilfe​

Du willst…Nimm
CRUD ΓΌber Ressourcen, einfache Web-APIREST
Flexible Queries, mehrere Clients (Web/Mobile)GraphQL
Hochperformante Service-zu-Service-KommunikationgRPC
Echtzeit-Bidirektional (Chat, Multiplayer)WebSocket
Server-zu-Client-Stream (Notifications, Tickers)Server-Sent Events
Event-Push an DrittsystemeWebhooks
Type-safe End-to-End in TypeScript-MonorepotRPC
Legacy-Enterprise-Integration (Banken, ERP)SOAP
Simple Remote-Procedure-CallJSON-RPC
Async-Message-Bus, entkoppelte ServicesMessage Queue / Event Streaming

2. Die Architektur-Landkarte​

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ SYNCHRON / REQUEST-RESPONSE β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ REST β”‚ GraphQL β”‚ gRPC β”‚ SOAP β”‚ JSON-RPC β”‚ tRPC β”‚
β”‚ HTTP β”‚ HTTP β”‚ HTTP/2 β”‚ HTTP/XML β”‚ HTTP β”‚ HTTP β”‚
β”‚ Ressrc. β”‚ Query β”‚ Proto β”‚ WSDL β”‚ Methode β”‚ TS-Function β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ STREAMING β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ WebSocket β”‚ Server-Sent Events β”‚ gRPC-Streaming β”‚
β”‚ bidirektional β”‚ Server β†’ Client β”‚ bi/uni-direktional β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ EVENT-DRIVEN β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Webhooks β”‚ Message Queue (RabbitMQ, SQS) β”‚ Event Streaming (Kafka) β”‚
β”‚ HTTP-Push β”‚ Producer β†’ Consumer β”‚ Append-Only Log β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

3. REST (Representational State Transfer)​

Was es ist: Der De-facto-Standard fΓΌr Web-APIs. Ressourcen als URLs, HTTP-Methoden als Verben, JSON als Payload.

GET    /api/users          β†’ Liste
GET /api/users/42 β†’ Einzelressource
POST /api/users β†’ Neu anlegen
PUT /api/users/42 β†’ Komplett ersetzen
PATCH /api/users/42 β†’ Teil-Update
DELETE /api/users/42 β†’ LΓΆschen

Vorteile​

  • Universell verstanden – jede Sprache, jeder Browser, jedes Tool
  • Caching out of the box ΓΌber HTTP-Cache-Header
  • Einfach zu testen mit curl, Postman, Browser
  • Stateless – horizontal skalierbar ohne Sticky Sessions
  • Riesiges Tooling: OpenAPI/Swagger, Postman, Insomnia

Nachteile​

  • Over-/Under-Fetching: Clients holen oft zu viel oder zu wenig pro Request
  • N+1-Requests bei verschachtelten Ressourcen
  • Versionierung umstΓ€ndlich: /v1/, /v2/ oder Header
  • Keine Typsicherheit zwischen Server und Client (ohne OpenAPI-Codegen)

Einsatzgebiete​

  • Γ–ffentliche Web-APIs (Stripe, GitHub, Shopify)
  • Klassische CRUD-Backends
  • Mobile-/SPA-Backends mittlerer KomplexitΓ€t
  • Microservices mit moderater Performance-Anforderung

4. GraphQL​

Was es ist: Eine Query-Sprache. Der Client beschreibt exakt, welche Felder er braucht, der Server liefert nur diese.

query {
user(id: 42) {
name
email
orders(last: 5) {
id
total
}
}
}

Vorteile​

  • Kein Over-/Under-Fetching – Client steuert die Form
  • Eine Query, viele Ressourcen – ersetzt mehrere REST-Aufrufe
  • Typsicheres Schema als Single Source of Truth
  • Selbstdokumentierend via Introspection (GraphiQL, Apollo Studio)
  • Subscriptions fΓΌr Echtzeit-Updates (ΓΌber WebSocket)

Nachteile​

  • Caching aufwendiger – HTTP-Cache funktioniert nicht out of the box
  • N+1-Falle im Resolver – DataLoader-Pattern Pflicht
  • Query-KomplexitΓ€t kann den Server killen – Depth-/Cost-Limits nΓΆtig
  • File Uploads kompliziert
  • Lernkurve fΓΌr Team und Tools

Einsatzgebiete​

  • BFF (Backend-for-Frontend) fΓΌr mehrere Clients
  • Mobile-Apps mit variablen View-Anforderungen
  • Aggregations-Layer ΓΌber viele Microservices
  • Produkte mit hΓ€ufig wechselndem UI (z. B. Marketplace, Dashboards)

Bekannte Nutzer: GitHub, Shopify, Facebook, Twitter API v2


5. gRPC​

Was es ist: Google's RPC-Framework ΓΌber HTTP/2 mit Protocol Buffers als Wire-Format. BinΓ€r, schnell, typsicher.

service UserService {
rpc GetUser (UserRequest) returns (User);
rpc StreamOrders (OrderFilter) returns (stream Order);
}

message User {
int32 id = 1;
string name = 2;
}

Vorteile​

  • Sehr schnell: BinΓ€rformat, HTTP/2-Multiplexing
  • Echte Typsicherheit via .proto-Files, Codegen fΓΌr 10+ Sprachen
  • Streaming nativ: Unary, Server-Stream, Client-Stream, Bidirectional
  • Schemata sind Pflicht – kein β€žWildwuchs"
  • Polyglott: Go ↔ Java ↔ Python ↔ Rust ↔ Node mit denselben Schnittstellen

Nachteile​

  • Schwer im Browser (gRPC-Web als KrΓΌcke, oft mit Envoy-Proxy)
  • BinΓ€r β†’ nicht im Browser debugbar ohne extra Tools
  • Steile Lernkurve fΓΌr Teams ohne Proto-Erfahrung
  • HTTP-Caching entfΓ€llt

Einsatzgebiete​

  • Service-zu-Service in Microservice-Architekturen
  • Performance-kritische interne APIs
  • IoT-GerΓ€te mit schmalbandiger Verbindung
  • Multi-Sprach-Backend-Landschaften

Bekannte Nutzer: Google intern, Netflix, Square, Cilium, etcd, Kubernetes


6. WebSocket​

Was es ist: Persistente, bidirektionale TCP-Verbindung ΓΌber HTTP-Upgrade. Server und Client kΓΆnnen jederzeit Nachrichten pushen.

Vorteile​

  • Echtzeit-Bidirektional mit niedriger Latenz
  • Sehr geringe Overhead pro Nachricht (keine HTTP-Header je Frame)
  • Browser-nativ (new WebSocket(...))
  • Perfekt fΓΌr Chats, Games, Live-Editing, Trading

Nachteile​

  • Zustandsbehaftet – Sticky Sessions oder Pub/Sub-Bus nΓΆtig
  • Skalierung anspruchsvoll – jede Verbindung belegt Server-Memory
  • Reconnect-Logik im Client Pflicht
  • HTTP-Proxies/Firewalls machen manchmal Γ„rger
  • Kein eingebautes Backpressure – muss man selbst bauen

Einsatzgebiete​

  • Chat-Anwendungen (Slack, Discord)
  • Collaborative Editing (Figma, Google Docs Cursors)
  • Live-Dashboards, Stock-Ticker
  • Online-Multiplayer-Games
  • Realtime-Benachrichtigungen mit User-Interaktion

Frameworks: Socket.IO, Pusher, Soketi, Laravel Reverb, Ably


7. Server-Sent Events (SSE)​

Was es ist: HTTP-Stream, bei dem der Server kontinuierlich Events an den Client sendet. Einseitig (Server β†’ Client).

GET /events
Content-Type: text/event-stream

data: {"price": 42}

data: {"price": 43}

Vorteile​

  • Über regulΓ€res HTTP – funktioniert mit jedem Proxy, jedem Load Balancer
  • Auto-Reconnect im Browser eingebaut (EventSource)
  • Sehr einfach zu implementieren – fast wie ein langer Response
  • Kein neues Protokoll – HTTP-Caching/Auth funktioniert
  • Perfekt fΓΌr LLM-Streaming (ChatGPT, Claude UI nutzen SSE)

Nachteile​

  • Einseitig – Client kann nicht ΓΌber denselben Channel pushen
  • Browser-Limit: 6 SSE-Verbindungen pro Domain (HTTP/1.1)
  • PHP/Laravel brauchen Long-Running-Worker oder Reverb-Setup

Einsatzgebiete​

  • LLM-Output-Streaming (ChatGPT, Claude)
  • Live-Notifications (Inbox, Alerts)
  • Progress-Updates fΓΌr lange Jobs
  • Activity-Feeds, Stock-Prices

8. Webhooks​

Was es ist: Reverse-API. Statt zu pollen, registriert der Client eine URL – der Server ruft sie an, wenn ein Event eintritt.

Stripe β†’ POST https://example.com/webhooks/stripe
Body: { "type": "payment.succeeded", ... }

Vorteile​

  • Push statt Poll – sofortige Reaktion, kein Lastpolling
  • Einfach zu implementieren – nur eine HTTP-Endpoint nΓΆtig
  • Lose Kopplung zwischen Systemen

Nachteile​

  • EmpfΓ€nger muss ΓΆffentlich erreichbar sein (oder Tunnel: ngrok, smee.io)
  • Retry/Delivery-Garantien je nach Anbieter unterschiedlich
  • Signature-Verifikation Pflicht (sonst Spoofing)
  • Idempotenz muss eigener EmpfΓ€nger-Code sicherstellen

Einsatzgebiete​

  • Payment-Provider (Stripe, PayPal, Mollie)
  • Git-Plattformen (GitHub, GitLab β†’ CI-Trigger)
  • SaaS-Integrationen (Slack-Events, Zapier)
  • Mailservices (SendGrid, Postmark Delivery-Status)

9. SOAP​

Was es ist: XML-basiertes, schwergewichtiges RPC-Protokoll mit WSDL-Schema. Aus der Web-1.0-Γ„ra, aber in Enterprise und BehΓΆrden noch sehr lebendig.

<soap:Envelope>
<soap:Body>
<getUser>
<id>42</id>
</getUser>
</soap:Body>
</soap:Envelope>

Vorteile​

  • Strict Schema via WSDL
  • WS-Security, WS-Transactions – Enterprise-Features eingebaut
  • In Banken, Versicherungen, BehΓΆrden Standard

Nachteile​

  • Verbose XML – riesige Payloads
  • Steile Lernkurve, schwierig zu debuggen
  • Tooling stirbt langsam außerhalb von Java/.NET
  • Kein Browser-Friendly-Pattern

Einsatzgebiete​

  • Banken-Schnittstellen, Versicherungs-EAI
  • Legacy-ERP-Systeme (SAP-PI)
  • BehΓΆrden-Web-Services (z. B. ELSTER, EU-Plattformen)
  • Wenn das GegenΓΌber es so verlangt – Punkt.

10. JSON-RPC​

Was es ist: Schlankes RPC-Protokoll, das JSON statt XML nutzt. Eine Methode + Parameter + Response.

{
"jsonrpc": "2.0",
"method": "getUser",
"params": { "id": 42 },
"id": 1
}

Vorteile​

  • Sehr einfach – nur 3 Felder Pflicht
  • Batch-Requests nativ
  • Notifications (Fire-and-Forget) eingebaut
  • Transport-agnostisch – HTTP, WebSocket, raw TCP

Nachteile​

  • Keine REST-Konventionen – Caching, Status-Codes weniger natΓΌrlich
  • Weniger Tooling als REST/GraphQL
  • Versionierung selbst lΓΆsen

Einsatzgebiete​

  • Ethereum/Bitcoin-Nodes (Standard-Wallet-API)
  • Language-Server-Protokoll (LSP), Debug-Adapter-Protokoll
  • Bridged WebSocket-RPCs in Trading-Plattformen

11. tRPC​

Was es ist: Type-safe RPC fΓΌr TypeScript-Monorepos. Server-Funktionen werden im Client wie lokale Funktionen aufgerufen – mit voller Typsicherheit, ohne Codegen.

// Server
export const appRouter = router({
getUser: publicProcedure
.input(z.object({ id: z.number() }))
.query(({ input }) => db.user.findUnique({ where: { id: input.id } }))
});

// Client
const user = await trpc.getUser.query({ id: 42 }); // Autocomplete + Typen!

Vorteile​

  • End-to-end-Typsicherheit ohne separates Schema
  • Kein Codegen-Schritt
  • Subscriptions, Batching, Caching out of the box
  • Sehr produktiv in Next.js/Remix-Monorepos

Nachteile​

  • Nur TypeScript zu TypeScript
  • Nicht ΓΆffentlich konsumierbar – keine OpenAPI-Doku, keine externen Clients
  • Vendor-Bindung an JS-Γ–kosystem

Einsatzgebiete​

  • Full-Stack-TS-Apps (Next.js, Remix, T3-Stack)
  • Interne Tools mit kleinem Team
  • Schnelle Prototypen mit Type-Safety

12. Message Queues & Event Streaming​

Was es ist: Asynchrone Kommunikation. Producer schreibt Nachrichten in eine Queue/Stream, Consumer liest sie unabhΓ€ngig.

Queue (RabbitMQ, SQS, Redis)Stream (Kafka, Redpanda, Pulsar)
ModellPunkt-zu-PunktPublish-Subscribe, Append-Only-Log
Persistenzbis ConsumeTage/Wochen, Replay mΓΆglich
Reihenfolgeper Queue garantiertper Partition
StΓ€rkenEinfach, Job-WorkersEvent-Sourcing, Replay, hohe DurchsΓ€tze

Vorteile​

  • Entkopplung von Producer und Consumer
  • Lastspitzen abfedern durch Pufferung
  • At-least-once-Delivery mit Retries
  • Skalierung horizontal ΓΌber Consumer Groups
  • Audit-Trail (insbes. Kafka-Streams)

Nachteile​

  • Eventual Consistency – keine synchronen Antworten
  • Betriebs-Overhead (Kafka, RabbitMQ sind eigene Systeme)
  • Debugging schwerer – Nachrichten verteilen sich ΓΌber mehrere Services
  • Idempotenz muss im Consumer gelΓΆst sein

Einsatzgebiete​

  • Hintergrund-Jobs (E-Mails, Bildverarbeitung, PDF-Generation)
  • Inter-Service-Events (Order-Created β†’ Inventory, Shipping, Billing)
  • Event-Sourcing-Architekturen
  • ETL-Pipelines, Analytics-Streams

13. Große Vergleichstabelle​

ArchitekturLatenzDurchsatzTypsicherheitBrowserStreamingCachingLernkurve
RESTmittelmittelΓΌber OpenAPIβœ…βšͺβœ…flach
GraphQLmittelmittelβœ…βœ…βœ… (Subs)tlw.steil
gRPCsehr niedrighochβœ… Protoβšͺ (Web-Proxy)βœ…βšͺsteil
WebSocketsehr niedrighochβ€“βœ…βœ…βšͺmittel
SSEniedrigmittelβ€“βœ…βœ… einseitigβšͺflach
Webhooksn. a.n. a.–n. a.βšͺn. a.flach
SOAPhochniedrigβœ… WSDLβšͺβšͺβšͺsehr steil
JSON-RPCmittelmittelβ€“βœ…tlw.βšͺflach
tRPCmittelmittelβœ… via TSβœ…βœ…βœ…flach (TS)
Queues/Streamsasyncsehr hochtlw. (Avro/Proto)βšͺn. a.n. a.mittel–steil

14. Auswahl-Heuristik​

β€žIch baue eine ΓΆffentliche API."​

β†’ REST mit OpenAPI-Spec. Wenn flexible Queries kritisch: GraphQL.

β€žMicroservices intern, hohe Performance."​

β†’ gRPC. FΓΌr Events zusΓ€tzlich Kafka/RabbitMQ.

β€žChat, Multiplayer, Collab-Editing."​

β†’ WebSocket (Laravel: Reverb, Pusher, Soketi).

β€žLLM-Streaming, Notifications."​

β†’ SSE. Einfacher als WebSocket und vollkommen ausreichend.

β€žDrittsystem soll mich aktiv informieren."​

β†’ Webhooks mit HMAC-Signatur.

β€žFull-Stack-TS-App, Solo oder kleines Team."​

β†’ tRPC. Maximale ProduktivitΓ€t.

β€žBank/Versicherung verlangt es."​

β†’ SOAP. Punkt.

β€žHintergrund-Jobs, hohe Last."​

β†’ Queue (Redis/SQS) fΓΌr Jobs, Kafka fΓΌr Event-Sourcing.


15. Sicherheits-Querschnitt​

Gilt fΓΌr ALLE API-Architekturen
  • Authentication: JWT, OAuth2, API-Keys – nie selbst Crypto bauen
  • Authorization: Pro Endpoint/Methode/Topic prΓΌfen, nicht nur Login
  • Rate Limiting auf Anbieter- und Nutzer-Ebene
  • Input-Validation strikt – Zod, FormRequests, JSON-Schemas
  • TLS ΓΌberall, auch intern
  • CORS explizit konfigurieren, nie * fΓΌr Auth-Endpoints
  • Webhook-Signaturen (HMAC) bei eingehenden Webhooks immer verifizieren
  • GraphQL: Query-Depth- und Cost-Limits, Persisted Queries
  • WebSocket: Auth beim Upgrade-Handshake, nicht erst pro Message
  • gRPC: mTLS fΓΌr interne Service-Calls

16. Praktischer Kombi-Stack​

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Public API (Mobile + 3rd Party) β”‚
β”‚ └─ REST + OpenAPI versioniert, dokumentiert β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Web-Frontend (SPA / Next.js) β”‚
β”‚ └─ GraphQL oder tRPC typsicher, flexibel β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Service-zu-Service β”‚
β”‚ └─ gRPC schnell, typsicher β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Echtzeit-UI β”‚
β”‚ └─ WebSocket (Reverb) / SSE Live-Updates β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Hintergrund-Jobs / Events β”‚
β”‚ └─ Queue (Redis/SQS) + Kafka async, entkoppelt β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Eingehende 3rd-Party-Events β”‚
β”‚ └─ Webhooks (Stripe, GitHub, …) HMAC-verifiziert β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

17. WeiterfΓΌhrend​

  • Laravel-Implementierung jeder Architektur β†’ Laravel-API-Guide
  • OpenAPI / Swagger Playground β†’ API Playground

Externe Quellen

Quote

β€žArchitekturen wΓ€hlt man nicht nach Mode, sondern nach Kommunikationsmuster, Konsistenzanforderung und Team-Skill."