Files
llm-wiki/raw/official-docs/sample-microservices-spring-cloud-github.md

8.2 KiB

title, source_type, url, archive_url, status, confidence, tags, related_projects, related_branches, created, last_reviewed
title source_type url archive_url status confidence tags related_projects related_branches created last_reviewed
spring-petclinic/spring-petclinic-microservices — Spring Cloud microservices reference sample official-doc https://github.com/spring-petclinic/spring-petclinic-microservices raw high
ca-tmpl
sample-fixture
microservices
spring-cloud
petclinic-variant
official-doc
ca-skeleton-operational-contract
feature-sample-domain-contract-fixture
2026-05-22 2026-05-27

spring-petclinic-microservices

Layer: raw/official-docs/ — spring-petclinic org 의 microservices variant README verbatim 발췌. ca-tmpl sample-ticket 결정의 대안 3 (microservices reference variant) 비교 근거.

Parent / 활용 branch (필수)

Branch 이 자료가 정당화하는 결정
raw/branch-notes/feature-sample-domain-contract-fixture sample fixture 를 modular monolith 가 아닌 microservices 로 가져갈 때의 거리감 — Spring Cloud Gateway/Config/Eureka/Tracing 같은 distributed 인프라가 fixture 의 일부가 된다는 영향 식별

컨텍스트

ca-tmpl sample-ticket 결정에 대한 대안 3. petclinic 도메인을 microservices(Eureka discovery, Config server, API gateway, distributed tracing)로 분해한 reference. ca-tmpl이 modular monolith 기준임을 고려할 때 "sample fixture를 microservices로 가져가는 길은 어떻게 다른가" 비교점.

출처 / Source

핵심 인용 / Key quotes (verbatim)

[§README — purpose] "This microservices branch was initially derived from [AngularJS version] to demonstrate how to split sample Spring application into [microservices]."

[§README — Spring Cloud stack] "we use Spring Cloud Gateway, Spring Cloud Circuit Breaker, Spring Cloud Config, Micrometer Tracing, Resilience4j, Open Telemetry and the Eureka Service Discovery from the [Spring Cloud Netflix] technology stack."

[§README — tracing] "Tracing Server (Zipkin) - [http://localhost:9411/zipkin/] (we use [openzipkin]"

[§README — service list] "This project consists of several microservices: Customers Service: Manages customer data. Vets Service: Handles information about veterinarians. Visits Service: Manages pet visit records. GenAI Service: Provides a chatbot interface to the application."

Claims Extracted / 추출된 주장

Claim ID Claim (이 자료가 직접 말하는 것) Evidence quote Strength Applies to Does not prove
SMP-PCM-C1 spring-petclinic-microservices 는 기존 petclinic Spring 앱을 microservices 로 어떻게 분할하는지 시연할 목적으로 derived 된 변형이다 [§README — purpose] "This microservices branch was initially derived from [AngularJS version] to demonstrate how to split sample Spring application into [microservices]." engineering-blog Spring Boot → microservices 분할 학습 reference 평가 "이 분할 방식이 production 의 best practice" 라는 뜻은 아님 — 어디까지나 demo
SMP-PCM-C2 본 프로젝트는 Spring Cloud Gateway, Spring Cloud Circuit Breaker, Spring Cloud Config, Micrometer Tracing, Resilience4j, Open Telemetry, Eureka Service Discovery (Spring Cloud Netflix) 를 사용한다 [§README — Spring Cloud stack] "we use Spring Cloud Gateway, Spring Cloud Circuit Breaker, Spring Cloud Config, Micrometer Tracing, Resilience4j, Open Telemetry and the Eureka Service Discovery from the [Spring Cloud Netflix] technology stack." engineering-blog 본 reference 가 채택한 Spring Cloud 컴포넌트 목록 확인 이 조합이 모든 Spring microservices 프로젝트에 권장된다는 뜻은 아님 — 본 reference 의 선택일 뿐
SMP-PCM-C3 distributed tracing 은 Zipkin (openzipkin) 으로 수집되며, Tracing Server 는 localhost:9411/zipkin/ 에서 노출된다 [§README — tracing] "Tracing Server (Zipkin) - [http://localhost:9411/zipkin/] (we use [openzipkin]" engineering-blog 본 reference 의 tracing UI 위치 확인 Zipkin 이 모든 환경에서 권장 tracer 라는 뜻은 아님 — Tempo/Jaeger 등 대안 존재
SMP-PCM-C4 본 프로젝트의 서비스 구성: Customers Service (고객 데이터), Vets Service (수의사 정보), Visits Service (방문 기록), GenAI Service (챗봇 인터페이스) [§README — service list] "This project consists of several microservices: Customers Service: Manages customer data. Vets Service: Handles information about veterinarians. Visits Service: Manages pet visit records. GenAI Service: Provides a chatbot interface to the application." engineering-blog 서비스 경계 결정 학습 reference 본 분할이 "정답" 이라는 뜻은 아님 — 도메인 경계는 비즈니스 의존

Strength 허용값 사용

  • engineering-blog — spring-petclinic org 는 Spring 커뮤니티 maintained 이나 단일 벤더의 공식 product documentation 이 아니며, "공식 best practice" 로 취급 금지. ca-tmpl 운영 규칙 §5 의 company-tech-blog 와 유사한 제약 적용

Usage Boundaries / 적용 경계

  • 이 자료가 직접 증명하는 것:
    • SMP-PCM-C1: 본 reference 의 derivation/목적 (split demonstration)
    • SMP-PCM-C2: 채택된 Spring Cloud 컴포넌트 목록
    • SMP-PCM-C3: Zipkin 기반 tracing 구성과 UI 포트
    • SMP-PCM-C4: 서비스 분할 구성 (4개 서비스)
  • 이 자료가 증명하지 않는 것:
    • 이 분할 방식이 production microservices best practice 라는 권위 (Spring 공식 vendor doc 아님)
    • ca-tmpl 의 "state machine / optimistic lock / idempotency" 12-scenario matrix 에 해당하는 검증이 본 reference 에 존재 — README 에는 명시 없음
    • Spring Cloud Netflix 의 모든 컴포넌트 (Eureka 등) 가 active maintenance 상태인지의 최신 정보 (Netflix OSS 정책 변화 별도 확인)
    • GenAI Service 가 reference architecture 의 필수 부분인지 (최근 추가된 demo 일 가능성)
  • 내 프로젝트에 적용하려면 추가 확인이 필요한 것:
    • ca-tmpl 의 modular monolith 가정과 본 reference 의 distributed 가정의 차이가 fixture 채택 비용에 어떻게 영향하는지
    • 본 reference 의 commit history 와 maintenance 활성도
    • 본 reference 가 contract test (Pact 등) 를 포함하는지

메모 / Notes (내 프로젝트 해석)

본 섹션은 자료 직접 인용 아님. ca-tmpl 결정 컨텍스트 해석.

  • 구성 서비스: customers-service / vets-service / visits-service / api-gateway / config-server / discovery-server / admin-server / tracing-server.
  • ca-tmpl과의 거리: ca-tmpl은 modular monolith를 기본 가정 → microservices sample은 sample fixture라기보다 별도 architecture 결정. fixture로 채택 시 skeleton 자체가 distributed 인프라를 요구함.
  • 상태 머신/optimistic lock/idempotency 없음. fixture로 차용해도 ca-tmpl이 명시한 12-scenario matrix(state machine, idempotent create, sample removal smoke) 검증 어려움.
  • 장점: distributed tracing, gateway, config server 같은 cross-cutting concern을 sample 안에서 다룸.
  • 단점: skeleton 검증 fixture 수준을 한참 초과. ca-tmpl의 "sample = contract fixture, not feature" 원칙과 충돌.
  • 신뢰도: spring-petclinic org variant. official-doc 분류로 frontmatter 정리되어 있으나 strength = engineering-blog 로 표시 (공식 best practice 로 취급 금지).

관련 ca-tmpl branch / contract

  • 적용 branch-note:
  • canonical contract 섹션:
    • raw/project-notes/ca-skeleton-operational-contract#17. Sample Domain Fixture
  • 대안 그룹: Group G — Sample domain contract fixture
  • 본 source의 위치: 대안 3 — microservices reference variant