당신의 결제 모델은 아마도 당신에게 거짓말을 하고 있습니다
Source: Dev.to
개요

모든 결제 시스템은 같은 방식으로 시작합니다: 하나의 테이블, 하나의 제공자, 그리고 배포합니다.
그 다음 두 번째 제공자가 등장합니다. 그 다음 재시도 로직이 생깁니다. 그 다음 부분 환불이 있습니다. 그리고 첫날 만든 모델이 당신에게 거짓말을 하고 있다는 것을 깨닫게 됩니다.
저는 이 과정을 겪었습니다 — 그리고 이를 수정하는 대신, 하나의 질문으로 다시 시작했습니다: 비즈니스 개념으로서 결제란 무엇인가?
그 결과는 DDD와 헥사고날 아키텍처를 중심으로 구축된 도메인 모델입니다: 의도로서의 Payment, 행동으로서의 PaymentAttempt, 각자 자체 상태 머신을 가진 채널(카드, 암호화폐, P2P, 현금), 그리고 도메인을 깔끔하게 유지하는 제공자 포트.
코드는 오픈 소스입니다: