나는 최근 Hohpe와 Woolf의 엔터프라이즈 통합 패턴, SOA에 대한 Thomas Erl의 저서 중 일부를 읽고 Udi Dahan et al.의 다양한 비디오와 팟 캐스트를보고 있습니다. CQRS 및 이벤트 구동 시스템.
작업장의 시스템은 높은 커플 링으로 인해 어려움을 겪습니다. 각 시스템에는 이론적으로 자체 데이터베이스가 있지만 시스템 간에는 많은 조인이 있습니다. 실제로 이것은 모든 시스템이 사용하는 하나의 거대한 데이터베이스가 있음을 의미합니다. 예를 들어 고객 데이터 테이블이 하나 있습니다.
내가 읽은 대부분은 각 시스템이 데이터베이스 만 사용하고 한 시스템에 대한 모든 업데이트가 메시징을 사용하여 다른 시스템으로 전파되도록 데이터 비정규 화를 제안하는 것으로 보입니다.
이것이 SOA의 경계를 강화하는 방법 중 하나라고 생각했습니다. 각 서비스에는 자체 데이터베이스가 있어야하지만 이것을 읽었습니다.
/programming/4019902/soa-joining-data-across-multiple-services
그리고 이것이 잘못된 일임을 제안합니다.
데이터베이스를 분리하는 것은 시스템을 분리하는 좋은 방법처럼 보이지만 이제는 약간 혼란스러워합니다. 이것이 좋은 길입니까? SOA 서비스, DDD 경계 컨텍스트, 애플리케이션 등에서 데이터베이스를 분리해야한다고 권장 한 적이 있습니까?