Backpressure Pattern
소비자가 처리 가능한 속도보다 생산자가 빠를 때 소비자가 생산 속도를 제어하는 메커니즘. 버퍼 폭발과 OOM을 방지. 생산자 >> 소비자 속도 차이 → 무한 큐 성장 → 메모리 고갈 또는 지연 폭증. Java의 `Flow` API, Project Reactor, ...
이 용어로 연결된 기록을 섹션별로 살펴봅니다.
소비자가 처리 가능한 속도보다 생산자가 빠를 때 소비자가 생산 속도를 제어하는 메커니즘. 버퍼 폭발과 OOM을 방지. 생산자 >> 소비자 속도 차이 → 무한 큐 성장 → 메모리 고갈 또는 지연 폭증. Java의 `Flow` API, Project Reactor, ...
분산 시스템은 Consistency, Availability, Partition Tolerance 세 속성 중 **동시에 둘만** 보장할 수 있다는 정리(Brewer, 2000). 네트워크 분할은 필연적 → P는 포기 불가. **CP vs AP**가 실질적 선택:...
Command Query Responsibility Segregation: 데이터 쓰기(Command)와 읽기(Query) 모델을 물리적으로 분리하는 아키텍처 패턴. Write Model의 이벤트를 구독하여 Read Model을 동기화하는 비동기 프로세스. 결과적...
현재 상태(State)가 아니라 발생한 사건(Event)의 이력 자체를 불변 로그로 저장하는 데이터 관리 패턴. 전통 DB: `UPDATE accounts SET balance = 500` → 이전 값 유실 Event Sourcing: `[Deposited(300...
장애 서비스로의 반복 호출을 차단하여 연쇄 장애(Cascading Failure)를 방지하는 회복성 패턴. 구현체: Resilience4j (Java), Polly (.NET), Hystrix (deprecated).
서비스 신뢰성을 수치로 정의하고 계약하는 SRE의 핵심 프레임워크. 남은 Error Budget이 있으면 새 기능 배포 가능. 소진되면 안정화 작업 우선. 개발팀과 SRE 팀의 공통 언어.
노드 추가/제거 시 재분배되는 키 수를 최소화하는 분산 해싱 기법. 기존 모듈러 해싱(key % N)은 N 변경 시 대부분의 키 재분배가 필요하다. 단일 노드를 링 위 여러 지점에 배치 → 부하 균등 분배 + 핫스팟 방지: 실제 구현: Cassandra, Amaz...