Skip to content

Paycore-Team/Paycore

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

80 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PayCore Architecture

프로젝트 설계 과정에서의 다이어그램 진화 기록입니다.
(Sequence Diagram, Class Diagram, Module Architecture)


Version History

Version Date Description
v1.0 2025-10-31 초기 Sequence Diagram 및 Class Diagram 설계

Diagrams by Version

v1.0 — 초기 설계 (2025-10-25)

[Class Diagram - PaymentService]

PaymentService Class Diagram

[Class Diagram - OrderService]

OrderService Class Diagram

[Sequence Diagram - PaymentService]

PaymentService Sequence Diagram

[Sequence Diagram - OrderService]

OrderService Sequence Diagram

Architecture Note

멀티 모듈(Multi-Module) 기반으로 구성한 이유

  • 도메인별 책임 분리를 통해 코드의 응집도를 높이고 결합도를 낮추기 위함
  • Order, Payment, Settlement, Notification 등 각 기능을 독립적으로 개발/테스트 가능
  • 공통 모듈(common)에 예외 처리, 공용 DTO, 유틸 클래스를 모아 중복을 최소화

Outbox 테이블 구조

  • Outbox DB에 sagaId와 엔티티의 PK를 함께 저장
  • 이는 보상 트랜잭션(Saga Compensation) 수행 시 어떤 로직을 롤백해야 하는지를 추적하기 위함
  • 또한 Transaction Outbox Pattern을 적용해 DB 트랜잭션과 이벤트 발행의 원자성(Atomicity) 을 보장

RabbitMQ를 선택한 이유 (Kafka 대신)

  • 프로젝트의 이벤트 규모가 상대적으로 작고, 실시간 트랜잭션 처리 중심 구조이기 때문
  • RabbitMQ는 Low Latency / High Throughput 환경에서 메시지 순서 보장과 즉각적 ACK 관리가 용이
  • 향후 대규모 트래픽(대용량 로그, 이벤트 스트리밍)으로 확장 시 Kafka로 전환 예정

About

대규모 트래픽을 견디는 결제/정산 플랫폼, Paycore

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •