태그: #distributed-systems
GPU·LLM·MLOps·쿠버네티스, 그리고 마음가짐에 관한 글 · 45 편
타입 검사기를 통과한 두 서비스가 서로를 기다리며 멈출 때 — 코레오그래피라는 다른 접근
메모리 안전을 보장하는 언어를 써도 두 서비스가 서로의 메시지를 기다리며 멈추는 일은 막지 못합니다. 타입 검사기의 시야가 프로세스 하나에서 끝나기 때문입니다. 코레오그래피 프로그래밍은 시스템 전체를 하나의 프로그램으로 쓰고 컴파일러가 노드별 코드를 뽑아내게 해서 이 경계 자체를 없앱니다. 최근 공개된 Wyzer를 실마리로, 엔드포인트 프로젝션이 무엇이고 왜 데드락이 설계상 사라지는지, 그리
2026-08-09 · 14 분 읽기 #programming-languages#compiler#distributed-systems#type-systems#concurrencyTemporal Worker Versioning GA — 리플레이 모델이 만든 배포 문제, 두 세대를 버리고 나온 세 번째 답
Temporal 같은 내구 실행 엔진은 이벤트 이력을 리플레이해 장애를 견디는데, 바로 그 리플레이 때문에 "실행 중인 워크플로가 있는 채로 새 코드를 배포"하는 일이 이 모델에서 가장 까다로운 문제가 됩니다. Temporal은 2026년 3월 30일 Worker Versioning의 GA를 발표했고 OSS 서버로는 v1.31.0(4월 29일)에 명시됐습니다 — 2023년 6월 첫 프리뷰 이
2026-07-17 · 24 분 읽기 #distributed-systems#durable-execution#temporal#workflow-engine#reliabilityNATS Server 2.14 — 패스트 배치 퍼블리시, 서버 내장 스케줄, 그리고 2.15 전에 해둘 숙제
2026년 4월 30일 릴리스된 NATS Server 2.14는 JetStream에 흐름 제어가 내장된 고속 배치 퍼블리시(fast batch publish), 크론식 반복 스케줄과 서브젝트 샘플링, WorkQueue·Interest 스트림 소싱의 내구 컨슈머 전환, 컨슈머 리셋 API를 더했습니다. 2.13은 건너뛰었고, 왜인지는 공식적으로 설명된 바 없습니다. 이 글은 릴리스 노트·업그레
2026-07-17 · 27 분 읽기 #messaging#nats#distributed-systems#release-notesRay 2.56의 레이블 로컬리티 스케줄링 — 배치 그룹이 노드가 아니라 NVLink 랙을 보기 시작했다
2026년 6월 29일 나온 Ray 2.56.0은 배치 그룹에 도메인 레벨 스케줄링 레이어를 알파로 추가했습니다. 지금까지 PACK·STRICTPACK 같은 배치 전략은 전부 노드 단위로만 동작해서, GB200·GB300 NVL72처럼 NVLink 도메인이 노드 여러 개에 걸치는 랙에서는 "이 배치 그룹을 한 랙 안에 다 넣어 달라"를 표현할 방법이 없었습니다. 새 레이블 로컬리티 스케줄링은
2026-07-17 · 21 분 읽기 #ray#gpu#scheduling#distributed-systemsCassandra 6.0-alpha1과 Accord 트랜잭션 — 5년 만의 "범용 트랜잭션"은 지금 어디까지 왔나
2021년 CEP-15로 제안된 Cassandra의 범용 트랜잭션 프로토콜 Accord가 2026년 3~4월, 마침내 6.0-alpha1이라는 실행 가능한 릴리스에 실려 나왔습니다. 리더 없는 합의로 멀티 파티션 strict-serializable 트랜잭션을 정상 조건에서 WAN 왕복 1회에 처리한다는 것이 프로토콜의 약속이고, BEGIN TRANSACTION 구문과 테이블별 transact
2026-07-17 · 24 분 읽기 #database#cassandra#distributed-systems#transactionsKafka Diskless Topics(KIP-1150) — 크로스 AZ 비용과 맞바꾸는 지연 시간, 그리고 아직 배송되지 않은 기능
2026년 3월 2일, Apache Kafka 커뮤니티가 KIP-1150 Diskless Topics를 승인했습니다. 브로커 디스크 대신 오브젝트 스토리지를 데이터의 원본으로 삼아, 하이퍼스케일러에서 Kafka 비용의 큰 축인 크로스 AZ 복제 트래픽을 없애겠다는 제안입니다. 다만 승인된 것은 방향이지 구현이 아니고 — KIP 본문이 "이 KIP는 승인되더라도 코드 변경을 요구하지 않는다"고
2026-07-16 · 32 분 읽기 #kafka#streaming#distributed-systems#cloud-native결정론적 시뮬레이션 테스트가 찾은 버그 — KAFKA-19880, 그리고 "버그 0건"을 읽는 법
결정론적 시뮬레이션 테스트(DST)는 클럭, 스레드 인터리빙, 난수처럼 비결정성이 흘러 들어오는 출처를 시뮬레이터 안에 가두어, 재현이 안 되던 heisenbug를 시드 하나로 다시 불러올 수 있게 만드는 기법입니다. 2026년 3월 Aiven은 Kafka의 Diskless Topics 구현체를 Antithesis에 넣고 약 2,200 논리 시간을 돌렸고, 결과는 버그 0건이었습니다. 정작
2026-07-16 · 32 분 읽기 #testing#deterministic-simulation-testing#distributed-systems#kafka#antithesis5노드 Raft에서 3노드가 한꺼번에 죽은 이유 — Coinbase 2026년 5월 7일 장애 읽기
2026년 5월 7일 저녁 AWS us-east-1의 가용 영역 use1-az4에서 데이터 홀 한 곳의 냉각 장치가 동시에 고장 났고, Coinbase는 거래와 입출금을 포함한 대부분의 서비스가 약 8시간 중단되는 장애를 겪었습니다. 6월 1일 공개된 Coinbase의 포스트모템은 5노드 Raft 체결 엔진 중 3노드가 동시에 죽어 쿼럼을 잃은 과정과, AWS 관리형 Kafka인 MSK의 컨
2026-07-16 · 35 분 읽기 #distributed-systems#postmortem#consensus#aws#resilience2026년에도 윤초는 없다 — 그리고 아무도 겪어본 적 없는 음의 윤초
IERS가 2026년 7월 6일 Bulletin C 72로 "2026년 12월 말 윤초 없음"을 발표했습니다. 겉보기엔 조용한 소식이지만, 지구 자전이 2016년부터 오히려 빨라지면서 사상 처음으로 음의 윤초를 넣어야 할 가능성이 생겼습니다. 윤초가 무엇인지, POSIX 시간이 왜 이걸 표현하지 못하는지, 2012년과 2017년의 실제 장애가 무엇을 가르쳐 주는지, 그리고 한 번도 실행된 적
2026-07-11 · 10 분 읽기 #leap-second#utc#ntp#distributed-systems#posix-time분산 트랜잭션: 2PC vs Saga 패턴
한 데이터베이스 안에서는 쉬웠던 ACID가 왜 여러 서비스에 걸치면 무너지는지, 2단계 커밋(코디네이터, 블로킹, 실패 모드)의 원리와 한계, Saga 패턴(코레오그래피 vs 오케스트레이션, 보상 트랜잭션), 이중 쓰기 문제를 푸는 아웃박스 패턴, 그리고 결과적 일관성이 실무에서 뜻하는 바까지. 마이크로서비스 시대의 트랜잭션을 정리합니다.
2026-06-29 · 26 분 읽기 #distributed-systems#transactions#sagaExactly-once는 환상인가: 결제·메시징의 정확성
전달 보장의 세 등급(at-most-once, at-least-once, exactly-once)이 실제로 뜻하는 것, 왜 exactly-once "전달"은 원리적으로 불가능하지만 exactly-once "처리"는 멱등성·중복 제거·트랜잭션 아웃박스로 달성 가능한지, 두 장군 문제가 알려 주는 것, 그리고 Kafka의 exactly-once가 무엇을 진짜로 보장하는지까지. 결제와 메시징의 정
2026-06-28 · 27 분 읽기 #distributed-systems#messaging#reliability분산 시스템이 알려준 연애의 기술
재시도와 백오프, 타임아웃, 하트비트, 일관성 모델, 백프레셔, 우아한 성능 저하, 멱등성, 두 장군 문제, TTL이 붙은 캐시로서의 신뢰. 분산 시스템을 어렵게 만드는 문제들은 사람과 가까워지는 일을 어렵게 만드는 문제와 놀랍도록 똑같습니다. 엔지니어의 눈으로 연애를 다시 읽어 봅니다.
2026-06-25 · 25 분 읽기 #engineering#relationships#fun#distributed-systemsCAP 정리, 손짓 없이 제대로
"셋 중 둘을 고른다"는 흔한 설명은 틀렸습니다. CAP의 세 글자가 각각 무엇을 뜻하는지, 왜 실제로는 파티션이 났을 때만 C와 A 사이에서 선택하는지, PACELC이 왜 더 완전한 그림인지, 그리고 Dynamo와 Spanner 같은 실제 시스템이 어디에 서 있는지를 손짓 없이 짚습니다.
2026-06-23 · 22 분 읽기 #distributed-systems#databases#theory멱등성과 재시도: 신뢰할 수 있는 API
네트워크는 언젠가 반드시 실패하고, 실패하면 재시도해야 합니다. 문제는 "이미 처리됐는데 응답만 못 받은" 경우입니다. 멱등성이 무엇인지, 안전한 HTTP 메서드와 그렇지 않은 메서드, POST를 위한 멱등성 키, "정확히 한 번"이라는 신화, 그리고 지수 백오프와 지터로 천둥 소리 무리를 피하는 법을 정리합니다.
2026-06-21 · 24 분 읽기 #api#reliability#distributed-systems분산 메시징 2026 — Kafka 3.9 / NATS / Redpanda / Pulsar / RabbitMQ 4 / WarpStream 심층 비교
2026년 분산 메시징 지형도. Kafka 3.9는 KRaft가 기본이 되었고 ZooKeeper는 사라졌다. WarpStream은 S3 위에 Kafka API를 올렸고 Confluent에 인수됐다. Redpanda는 C++로 Kafka 호환을 밀고, NATS는 JetStream/KV/ObjectStore로 단일 인프라가 되었으며, Pulsar 4.0은 Functions로 스트림 위에서 코드를
2026-05-15 · 30 분 읽기 #messaging#distributed-systems#kafka#nats#redpanda분산 시스템 완전 가이드 — 시계·Consensus·Event Sourcing·Saga·CRDT·장애 패턴 (Season 2 Ep 12, 2025)
분산 시스템은 "여러 컴퓨터가 협력하는 일"처럼 보이지만, 실제로는 "시계가 다른 여러 컴퓨터가, 일부가 고장난 상태에서, 메시지가 손실되고 지연되는 네트워크를 통해 합의에 이르는 일"이다. Lamport/Vector Clock·HLC부터 Raft·Paxos·PBFT, Event Sourcing·CQRS, Saga 패턴, CRDT, 그리고 8 Fallacies와 실전 장애 패턴까지. Byza
2026-04-15 · 18 분 읽기 #distributed-systems#consensus#raft#paxos#lamport-clockRedis 내부와 분산 캐시 — 싱글 스레드, 자료구조, Cluster, Sentinel, RDB/AOF, Redlock, Valkey, Dragonfly 완전 정복 (2025)
Redis는 왜 싱글 스레드인데 초당 100만 QPS를 낼까? String부터 Stream까지 9가지 자료구조, Cluster의 Hash Slot, Sentinel HA, RDB/AOF 트레이드오프, Cache-Aside와 Thundering Herd, Redlock 논쟁, 2024년 라이선스 사태와 Valkey 포크, 멀티스레드 대안 Dragonfly/KeyDB까지 — 캐시 한 줄 뒤에 숨
2026-04-15 · 27 분 읽기 #redis#valkey#cache#distributed-systems#infraCRDT 완전 가이드 2025: 충돌 없는 복제 데이터 타입, 로컬 우선 협업, Yjs/Automerge
CRDT의 모든 것! Conflict-free Replicated Data Types 원리, State-based vs Operation-based, 기본 CRDT(G-Counter/PN-Counter/G-Set/2P-Set/LWW-Register), 고급(Sequence/RGA/Yjs), 로컬 우선 소프트웨어, Automerge/Yjs 비교, Figma/Linear 사례.
2026-04-15 · 19 분 읽기 #crdt#distributed-systems#local-first#collaboration#yjsRaft Consensus 완전 가이드 2025: Leader Election, Log Replication, Safety, etcd/Consul 실전 분석
etcd, Consul, CockroachDB, TiDB가 모두 Raft를 쓰는 이유는 이해하기 쉽기 때문이다. Leader Election, Log Replication, Safety Property, Membership Change, Snapshot까지 — 실전 시스템 분석과 함께 700줄로 깊이 있게 파헤친다.
2026-04-15 · 32 분 읽기 #raft#consensus#distributed-systems#leader-election#log-replicationGossip Protocols & Anti-Entropy 완전 가이드 2025: SWIM, HyParView, Merkle Tree, Cassandra/Consul/Redis Cluster 실전 분석
Cassandra, Consul, Redis Cluster가 어떻게 수천 대 노드의 상태를 동기화하는가? Gossip 프로토콜의 수학적 원리부터 SWIM, HyParView, Merkle Tree 기반 anti-entropy, 실전 시스템까지 720줄로 깊이 있게 파헤친다.
2026-04-15 · 32 분 읽기 #gossip-protocol#anti-entropy#swim#hyparview#merkle-tree