"매 service 간 coupling 의 minimize, 매 explicit contract 의 enforce.". 매 monolith 의 internal call 의 network call 의 transform 의 후, 매 transitive dependency · version skew · cascading failure 의 새로운 challenge 의 emerge. 2026 modern stack 은 매 OpenAPI/Protobuf contract + service mesh (Istio/Linkerd) + 매 SBOM-driven dependency tracking 의 combine.
매 핵심
매 dependency 의 종류
Build-time: 매 shared library 의 dependency (avoid — leads to coordinated deploys).
Runtime sync: 매 HTTP/gRPC call 의 직접 의존 (latency · failure propagation).
Runtime async: 매 event/queue 의 통한 loose coupling (Kafka, NATS).
Data: 매 shared DB schema 의 의존 (anti-pattern — own your data).
매 핵심 원칙
Bounded context: 매 서비스 의 own 의 data + 매 logic 의 own.
Explicit contract: 매 OpenAPI/gRPC schema 의 source-of-truth.
Backward compatibility: 매 N-2 version 의 support.
Failure isolation: 매 circuit breaker · timeout · bulkhead.
매 응용
매 dependency graph 의 visualize (Backstage, Grafana service map).
매 contract testing 의 CI integration (Pact, Schemathesis).
매 chaos engineering 의 통한 cascading failure 의 test.
producer.Send(&kafka.Message{Topic:"order.placed.v1",Value:marshal(OrderPlaced{ID:orderID,Items:items}),})// payment, inventory, notification 의 own pace 의 consume.
언제: 매 service decomposition 의 design, 매 dependency graph 의 review, 매 contract evolution 의 plan.
언제 X: 매 small monolith — 매 premature decomposition 의 cost > benefit.
❌ 안티패턴
Distributed monolith: 매 service 의 split 의 했지만 매 deploy 의 still coordinated.
Shared DB: 매 두 service 가 same table 의 write — coupling worst case.
Chatty API: 매 single user action 의 N개 service call 의 fan-out.
No timeout: 매 default infinite timeout — cascading hang.
Synchronous chain: A → B → C → D 매 single failure 의 entire chain 의 break.
🧪 검증 / 중복
Verified (Sam Newman Building Microservices 2nd ed, CNCF service mesh landscape 2026).