SettleFlow는 매장 주문, 결제 승인, 정산 반영 흐름을 다루는 Spring Boot 기반 백엔드 프로젝트입니다.
이 프로젝트는 단순 CRUD 구현이 아니라 결제 상태 전이, 결제 상태 이력 저장, Redis 기반 캐싱과 멱등성 처리, Kafka 이벤트 중복 처리, 정산 데이터 정합성, 그리고 AI 기반 자연어 매출/정산 질의 기능 확장을 목표로 합니다.
핵심 설계 원칙은 다음과 같습니다.
- Entity와 API DTO를 분리한다.
- Entity에는 setter를 만들지 않는다.
- 상태 변경은 도메인 메서드로 처리한다.
- Service 계층에 트랜잭션 경계를 둔다.
- 결제/정산 금액은 Redis나 LLM이 아니라 DB와 백엔드 서비스 로직이 계산한다.
- Kafka 이벤트는 중복 수신될 수 있다고 가정한다.
- AI는 원천 데이터를 수정하지 않고, 제한된 조회성 tool만 호출한다.
자세한 설계 문서는 아래에서 확인할 수 있습니다.