Architecture 20
- 타임아웃, 재시도, 백오프 - 증폭과 지터, 그리고 데드라인 전파
- 큐잉 이론 한 조각 - 도착률과 서비스율로 파라미터를 정하기
- API 버저닝과 호환성 - 스키마 진화 규칙
- 분산 트랜잭션 - 2PC와 Saga, 보상 트랜잭션이 실패하는 방식
- 모듈러 모놀리스 - 경계를 코드로 강제하는 방법
- TimescaleDB를 시계열 DB로 고른 이유 — Hypertable과 연속 집계
- 모듈식 모놀리스를 선택한 이유 — MSA의 유혹을 거부하기
- 가격이 아니라 이벤트를 팔자 — monticker 설계 철학
- 멱등성 설계 - 키의 단위와 저장 위치, 만료와 재시도 계약
- 이벤트 소싱과 CQRS - 언제 비용이 이익을 넘는가
- 시간과 순서 - 물리 시계의 한계, 논리 시계, 하이브리드 시계
- REST, gRPC, GraphQL - 선택 기준과 각자가 내는 비용
- 합의 알고리즘 - Raft를 상태 기계로 읽기
- 멱등한 API 설계 - HTTP 메서드의 의미와 재시도 계약
- 일관성 모델 - 선형화, 순차, 최종 일관성, 그리고 CAP를 설정값의 언어로
- 조건 기반 예측 캐싱: 고속 엑셀 다운로드 처리 구조 설계
- ADR(Architecture Decision Record) - 결정의 맥락을 결정과 함께 남기기
- Facade
- Microservices Architecture
- Unique ID Generation Strategy in Distributed Systems