DField SolutionsMérnöki stúdió · Budapest
Loading · Töltődik
Ugrás a tartalomhoz

CRDT (Conflict-free Replicated Data Type)

Kapcsolódó szolgáltatás Egyedi szoftverfejlesztés

MEGHATÁROZÁS

Conflict-free Replicated Data Type, magyarul konfliktusmentes replikált adattípus. Olyan adatszerkezet (counter, set, map, sorrendezett szöveg), ami matematikailag garantálja, hogy ha több peer offline szerkeszti és bármilyen sorrendben szinkronizál, az eredmény ugyanaz lesz mindenhol, kézi konfliktusfeloldás nélkül. Klasszikus demó: a synced multiplayer cursor, ahol Figmában vagy Notion-ben a kollégák egyidőben gépelnek ugyanabban a dokumentumban, és a karakterek nem írják felül egymást, a kurzorok élőben mozognak. A megoldott probléma: a last-write-wins és a kézi merge gyenge collaborative szerkesztésre, offline-first appra, edge-en futó replikákra. Két fő iskola: state-based (CvRDT, az állapot összeolvasztható) és operation-based (CmRDT, az operációk kommutatívak). Production-ben Yjs, Automerge, Loro Rust könyvtár, plus Liveblocks és PartyKit szolgáltatás. Ára: nagyobb adat (operation log) és garbage collection szükséges.

KAPCSOLÓDÓ FOGALMAK06
  • Docker

    Egy app-ot a függőségeivel együtt egy image-be csomagolunk, amiből futtatható container indul - így mindenhol ugyanúgy fut, fejlesztői gépen és szerveren is. A „nálam működik” innentől nem kifogás.

  • CI/CD

    Continuous Integration / Delivery: minden commitot automatikusan buildelünk, tesztelünk és (ha kéred) deployolunk. Ez a pipeline teszi lehetővé, hogy naponta sokszor, biztonságosan szállítsunk - kézi hibák nélkül.

  • Blue-Green Deployment

    Két azonos környezetet futtatunk: a blue él, a green az új verzió. Ha a green leellenőrzött, átkapcsoljuk rá a forgalmat; baj esetén egy mozdulattal visszaváltunk. Zero-downtime release, azonnali rollback.

  • Horizontális skálázás

    Több gépet/instance-ot adunk hozzá (scale out), nem egy nagyobbat (vertikális, scale up). Stateless szolgáltatásoknál ez a nyerő: olcsóbb, rugalmasabb, nincs felső plafon. State-et viszont külön tárba tesszük.

  • Load balancer

    A bejövő forgalmat több instance között osztja szét - ez a bejárati ajtó, ami redundanciát és sima skálázást ad. Health checkekkel kiveszi a halott instance-okat, így egy gép kiesése nem látszik a felhasználónak.

  • Distributed tracing

    Egy kérést végigkövetünk az összes szolgáltatáson egy trace ID-val (pl. OpenTelemetry). Microservice-rendszerben így derül ki másodpercek alatt, melyik szolgáltatás lassított be vagy hibázott - nem találgatunk.

EMLÍTÉSEK A BLOGON00

Még nincs cikk, ami ezt a fogalmat használja.