1.7.3#273
Conversation
[HSC-416] customer λ°νμ async executor λ±λ‘ κ²½λ‘ κ³ μ
There was a problem hiding this comment.
Code Review
μ΄λ² PRμ Kafka λ©μμ§ νμ΄λ‘λμ traceIdλ₯Ό μΆκ°νκ³ , 컨μλ¨Έμ λ‘κΉ μ²΄κ³λ₯Ό κ°μ νμ¬ μ²λ¦¬ λ¨κ³λ³ μ€ν μκ°κ³Ό νΈλ μ΄μ€ μ 보λ₯Ό κΈ°λ‘νλλ‘ λ³κ²½νμ΅λλ€. 리뷰 κ³Όμ μμ RecommendationKafkaConsumerμ νλ‘ν 격리(@Profile) λλ½, μΈνλΌ λ μ΄μ΄μμμ μ§μ μ μΈ λ¦¬ν¬μ§ν 리 νΈμΆ λ° νΈλμμ λΆμ¬, κ·Έλ¦¬κ³ μλ¬ λ‘κ·Έ λ΄ μλ³Έ νμ΄λ‘λ λλ½ λ± μν€ν μ² λ° μ΄μ κ΄μ μ κ°μ μ¬νλ€μ΄ μ§μ λμμ΅λλ€.
I am having trouble creating individual review comments. Click here to see my feedback.
src/main/java/site/holliverse/infra/kafka/consumer/RecommendationKafkaConsumer.java (28)
RecommendationKafkaConsumer ν΄λμ€μ @Profile("customer") μ΄λ
Έν
μ΄μ
μ΄ λλ½λμμ΅λλ€. μ΄ ν΄λμ€λ customer νλ‘νμμλ§ νμ±νλλ PersonaRecommendationRepository λ° CustomerMetrics λ±μ μμ‘΄νκ³ μμ΅λλ€. νλ‘μ νΈμ ECS μλΉμ€ λΆλ¦¬ ꡬ쑰(Rule 1.13-16) λ° νλ‘ν 격리 μμΉ(Rule 2.35)μ λ°λΌ, admin νλ‘ν νκ²½μμ μ ν리μΌμ΄μ
μμ μ λΉ μ£Όμ
μ€ν¨(NoSuchBeanDefinitionException)κ° λ°μν μνμ΄ ν½λλ€.
References
src/main/java/site/holliverse/infra/kafka/consumer/RecommendationKafkaConsumer.java (105-108)
μΈνλΌ λ μ΄μ΄μ Kafka Consumerκ° μ§μ Repositoryλ₯Ό νΈμΆνμ¬ μν°ν°λ₯Ό μ‘°ννκ³ μ μ₯νλ λΉμ¦λμ€ μ€μΌμ€νΈλ μ΄μ
μ μννκ³ μμ΅λλ€. μ΄λ Application Layer(UseCase)κ° νΈλμμ
κ²½κ³μ λλ©μΈ λ‘μ§ νλ¦μ μ μ΄ν΄μΌ νλ€λ μν€ν
μ² μμΉ(Rule 3.42)μ μ΄κΈλ©λλ€. λν νμ¬ consume λ©μλμ @Transactionalμ΄ μ μ©λμ΄ μμ§ μμ upsert λ‘μ§μ μμμ±μ΄ 보μ₯λμ§ μμ΅λλ€. ν΄λΉ λ‘μ§μ UseCaseλ‘ μ΄λνμ¬ μ²λ¦¬ν κ²μ κΆμ₯ν©λλ€.
References
- Application Layer (UseCase) Responsibilities: Transaction boundaries, Domain orchestration. (link)
src/main/java/site/holliverse/infra/kafka/consumer/RecommendationKafkaConsumer.java (139-147)
catch λΈλ‘μ μλ¬ λ‘κ·Έμμ μλ³Έ νμ΄λ‘λ(payload) κΈ°λ‘μ΄ λλ½λμμ΅λλ€. μ΄μ μ½λμμλ raw={}λ₯Ό ν΅ν΄ μμ λ λ©μμ§ λ΄μ©μ λ¨κ²ΌμΌλ, λ‘κ·Έ ν¬λ§· λ³κ²½ κ³Όμ μμ μ μΈλμμ΅λλ€. JSON νμ± μ€λ₯λ λ°μ΄ν° μ ν©μ± λ¬Έμ λ°μ μ μ νν μμΈ νμ
μ μν΄ μλ¬ λ‘κ·Έμλ μλ³Έ νμ΄λ‘λλ₯Ό ν¬ν¨νλ κ²μ΄ μ’μ΅λλ€.
"[REC][trace_id={}][member_id={}] stage={} elapsed_ms={} topic={} offset={} error={} raw={}",
traceId,
memberIdForCleanup != null ? memberIdForCleanup : "unknown",
"consume_failed",
elapsedMs(consumeStartedAt),
topic,
offset,
e.getMessage(),
payload,
e
π§ͺ Test Coverage Report (JaCoCo)
Package line spark (sample): π¦ Package coverage (worst 10)
𧨠Lowest coverage classes (worst 10)
π§© Changed files coverage breakdown (12 files)
π HTML 리ν¬νΈ: Actions β Artifacts β |
Recommendation Kafka Consumerμ λΉμ¦λμ€ μ€μΌμ€νΈλ μ΄μ μ UseCaseλ‘ μ΄λν΄ λ μ΄μ΄ μ± μμ λΆλ¦¬νκ³ , trace_id κΈ°λ° λ¨κ³ λ‘κ·Έμ ν μ€νΈλ₯Ό μ λΉν΄ μ΄μ μΆμ μ±μ κ°ννλ€. Made-with: Cursor
πμμ λ΄μ©
λ‘κ·Έ μΆκ°
πλ³κ²½ μ¬ν
π« Jira Ticket
#οΈβ£κ΄λ ¨ μ΄μ