CQRS CQRS란 Command and Query Responsibility Segregation 의 약자입니다. 저장소로부터 질의/명령을 이용하여 읽기/ 쓰기 작업을 분리하여 애플리케이션의 성능, 확장성, 보안성 등을 증가시키는 방법입니다. 명령(Command): Aggregation을 중심으로 데이터의 변화를 만듭니다. 주로 쓰기 작업을 실행합니다. 질의(Query): Aggregation을 중심으로 데이터를 가져옵니다. 주로 읽기 작업을 실행합니다. CQRS는 읽기/쓰기 모델을 분리하여 읽기 작업에 보다 높은 트랜잭션에서의 자유를 부여합니다. 주로 MongoDB와 같은 NoSQL을 사용하여 읽기 성능을 증가시킵니다. 쓰기 작업에는 PostgreSQL과 같은 RDBMS를 사용해 트랜잭션을 보장합니다..
Architecture
장애가 발생하는 서비스에 반복적인 호출이 되지 못하게 차단 특정 서비스가 정상적으로 동작하지 않을 경우 다른 기능으로 대체 수행하여 장애 회피 마틴 파울러는 루비를 이용해서 timeouts에 대해 보호하는 간단한 예를 보여준다. 아래 브레이커는 블럭을 저장하고, thresholds, timeouts, mornitoring과 같은 파라미터를 저장한다. 그리고 상태가 종료되면 리셋된다. class CircuitBreaker... attr_accessor :invocation_timeout, :failure_threshold, :monitor def initialize &block @circuit = block @invocation_timeout = 0.01 @failure_threshold = 5 @moni..