Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. At-Least-Once Delivery

    • 재전송을 통해 메시지 전달을 보장하지만, 중복이 발생할 수 있음.
    • Akka에서는 ask 패턴 또는 Akka Persistence(이벤트 소싱) 사용.
  2. Exactly-Once Delivery

    • 중복 제거 로직을 추가하여 메시지가 정확히 한 번만 처리되도록 보장.
    • Kafka 등의 외부 메시지 브로커와 조합하여 구현.
  3. Akka Reliable Delivery 사용

    • Akka의 Reliable Delivery 기능을 활용하면 At-Least-Once 또는 Exactly-Once 보장을 구현할 수 있음.


마치며

개인적으로 이 프로젝트를 팀에 활용하기위해 연구하는것은 다음 목표에 있습니다.

  1. Spring Boot이 주는 기본 Stack만으로도 고성능처리를 하기위해 부족함이 없습니다. 그래서 기본기가 가장중요합니다.
  2. 액터모델 부분 채택
    1. Akka의 채택은 SpringBoot Reacrive Adapter가 하지못하는 나머지 영역입니다.
    2. 전통적으로 웹진영에서 발전해혼 SteteLess기법만으로 대용량을 처리하는 경우 PasS의 의존도가 높아질수 있습니다.
    3. SteateFul 기법은 대용량 처리시 난이도가 있을수 있지만 비용절감 기법중 하나가 될수 있는 무기가 될수 있습니다.
    4. 액터모델은 StateFul 개발기법을 분산처리에 도입하고자할때 복잡성을 줄여주는 다양한 툴킷을 제공합니다.
  3. 외부장치 연동 ( kafka, mq...,nosql)
    1. 외부장치를 단순하게 풀링으로 이용하는것이아닌 stream으로 연동되어 상호 작동하는 인터페이스가 reactive stream으로 크게 성공한 활동입니다.
    2. reactive stream을 주도했던 기업이 akka를 만든 라이트벤드사 이며 akka가 아니여도 되지만, akka stream은  reactive stream을 준수하는 모든 장치와 고수준으로 연동하는 장치를 제공합니다.
      1.  https://learn.microsoft.com/ko-kr/azure/event-hubs/event-hubs-kafka-akka-streams-tutoria
        1. MS에서 자바 특정 프레임워크 akka 연동을 공식문서에 언급하는것은 이례적입니다. 
    3. akka가 아니여도되지만 액터모델과 연동되는 cqrs의 장치를 적어도 사용하고 작동시킬수 있음으로 이해를 시작 할수 있습니다. crud로만으로 오늘날의 대용량 트래픽을 커버할수 없으며 모든 샘플과 이론은 액터를 중심으로한 cqrs기법이 설명됩니다.


새로운 패러다임의 개발패턴을 적용한다고하면  유닛테스트를 통해 설명가능하고 작동가능한 코드를 먼저 작성하는것이 권장되며

...