파비의 매일매일 공부기록

파이썬으로 살펴보는 아키텍처 패턴 - 10장 #2 본문

Study/Python

파이썬으로 살펴보는 아키텍처 패턴 - 10장 #2

fabichoi 2021. 10. 25. 23:30

10.3 논의: 이벤트, 커맨드, 오류 처리
- 이벤트 처리 실패 시 : 시스템이 일관성 없는 상태로 남음. 그러나 할당 서비스에서 이런 일이 발생하지 않도록 조치를 취함. 애그리게이트를 일관성 경계로 동작하게 했고, 애그리게이트에 대한 업데이트 성공이나 실패를 원자적으로 처리하기 위해 UoW 설계
- 사용자가 어떤 일을 하기를 원한다면 이 요청을 커맨드로 표현. 커맨드는 한 애그리게이트를 변경해야 하고 전체적으로 성공하거나 전체적으로 실패해야 함(원자적 연산)
- 시스템이 수행하는 다른 북키 핑, 정리, 통지는 이벤트를 통해 발생. 커맨드가 성공하기 위해 이벤트 핸들러가 성공할 필요는 없음.
- 관심사를 분리하면 실패할 수 있는 요소들이 서로 격리되어 실패하게 할 수 있어 신뢰성 높아짐.
- 트랜잭션 경계를 의도적으로 비즈니스 프로세스의 시작과 끝을 일치시키면 됨.

10.4 동기적으로 오류 복구하기
- 불가피하게 오류가 발생한 경우 오류를 복구시킬 수 있다고 확신하기 위해서는 가장 먼저 언제 오류가 일어났는지를 알아야 함.
- 실패할 수도 있는 연산을 재시도하는 것이 시스템의 회복 탄력성을 향상하는 최선의 방식일 수 있음.
- 작업 단위와 명령 핸들러 패턴이 각 재시도가 일관성 있는 시스템 상태를 보장하고, 시스템이 작업이 반쯤 끝난 상태로 남지 않게 해 줌.

 

반응형
Comments