Skip to content

Latest commit

 

History

History
42 lines (38 loc) · 1.22 KB

README.md

File metadata and controls

42 lines (38 loc) · 1.22 KB

CloneCoin-BackEnd

아키텍쳐

< MSA 구조 >

  • DDD의 전략적 설계 방식을 사용하기 위해 팀원들과 Event Storming 진행
  • Event, Command, Actor, Interface, Aggregate, Policy를 파악하여 서버를 Bounded Context 단위로 나눔
  • ServiceDiscovery(Eureka) 서버를 구축하고 서버 등록
  • Gateway를 통하여 filter를 거친 뒤 올바른 end-point로 라우팅

< WalletRead >

  • Wallet server를 WalletWrite, WalletRead로 나누어 CQRS 패턴 적용
  • WalletWrite = CRUD 중 CUD 담당 (Command 담당 서버)
  • WalletRead = CRUD 중 R 담당 (Query 담당 서버)
  • 이를 통해 WalletWrite 서버의 부하를 줄이고, 조회대기 시간도 줄임
  • 두 서버의 데이터 일관성을 맞추기 위해 비동기 통신 Kafka 사용
  • WalletWrite 서버가 장애를 일으켜도 조회 서비스는 사용 가능

기술 스택

  • IDE : Intellij
  • SpringBoot : 2.4.11
  • maven
  • Java 11
  • DB = local:H2 / dev:H2 / prod:AWS RDS(Mysql)
  • JPA
  • 비동기 통신 = Kafka
  • 배포 = AWS EC2
  • Swagger

기능구현

  • 리더의 기간별 수익률 제공
  • 리더의 코인 정보 갱신
  • 리더의 정보 제공

구조

  • adaptor
  • config
  • domain
  • repository
  • rest
  • service