Interoperabilnost distribuiranih sustava
Arhitekturni obrasci, protokoli komunikacije i tehnike integracije modernih servisno orijentiranih sustava.
Primjer komunikacije između distribuiranih komponenti
Enterprise Integration Patterns (EIP)
Direktna komunikacija između dva sustava. Servis A poziva Servis B sinkrono. Jednostavna implementacija, čvrsta veza (tight coupling).
Proizvođač objavljuje poruke na temu (topic), više potrošača se pretplaćuje. Labava veza (loose coupling), asinkrona komunikacija.
Poruke čekaju u redu dok ih potrošač ne obrade. Garantirana dostava, load balancing između workera.
Jedinstvena ulazna točka za sve API pozive. Routing, authentication, rate limiting, request/response transformacija.
Infrastrukturni sloj za servis-servis komunikaciju. Automatski retry, circuit breaking, observability, mutual TLS.
Stanje sustava rekonstruira se iz niza događaja. Potpuna povijest promjena, mogućnost "replay" operacija.
Protokoli i standardi komunikacije
Arhitekturni stil temeljen na HTTP protokolu. Stateless, resource-oriented, koristi HTTP metode (GET, POST, PUT, DELETE, PATCH).
Query jezik za API-je. Klijent specificira točno koje podatke treba, jedna endpoint za sve operacije, type system, real-time subscriptions.
High-performance RPC framework. Protocol Buffers serializacija, HTTP/2, bidirekcional streaming, language-agnostic.
Full-duplex komunikacijski kanal. Održava trajnu vezu, real-time updates, niska latencija, push notifications.
Event-driven HTTP callbacks. Servis notificira druge sustave o promjenama slanjem POST requesta na konfigurirani URL.
Organizacijski modeli distribuiranih sustava
Jedinstvena, kompaktna aplikacija. Sve komponente u jednom deployment unit-u. Jednostavno razvojno okruženje, ali otežano skaliranje.
Neovisni, mali servisi fokusirani na specifičnu funkcionalnost. Nezavisno deployanje, tehnološka heterogenost, kompleksnost orkestracije.
Function-as-a-Service model. Izvršavanje koda bez upravljanja serverima, plaćanje po izvršenju, automatsko skaliranje.
Organizacija oko poslovnih funkcija. Enterprise Service Bus (ESB), standardizirani protokoli (SOAP), fokus na reusability.
Arhitektura bazirana na događajima. Proizvođači emitiraju evente, potrošači reagiraju asinkrono, labava veza između komponenti.
Kontinuirana obrada tokova podataka. Real-time analytics, event streaming (Kafka), complex event processing (CEP).
Problemi i rješenja u distribuiranim sustavima
Autentikacija: OAuth 2.0, JWT tokens, API keys
Autorizacija: RBAC, ABAC, policy enforcement
Enkripcija: TLS/SSL, end-to-end encryption
Rate Limiting: Zaštita od abuse i DDoS
Retry Mechanisms: Exponential backoff
Circuit Breaker: Prevencija kaskadnih kvarova
Timeout Management: Definiranje vremenskih limita
Idempotency: Sigurnost ponovljenih zahtjeva
Load Balancing: Distribucija prometa
Caching: Redis, Memcached, CDN
Database Sharding: Horizontalno particioniranje
Asinkrona obrada: Message queues
Distributed Tracing: Jaeger, Zipkin
Logging: Centralizirana agregacija logova
Metrics: Prometheus, Grafana
Correlation IDs: Praćenje zahtjeva kroz sustave