Gần đây tôi đã đọc Mô hình tích hợp doanh nghiệp của Hohpe và Woolf, một số cuốn sách của Thomas Erl về SOA và xem các video và podcast khác nhau của Udi Dahan et al. trên CQRS và các hệ thống hướng sự kiện.
Hệ thống tại nơi tôi làm việc bị khớp nối cao. Mặc dù về mặt lý thuyết, mỗi hệ thống có cơ sở dữ liệu riêng, có rất nhiều sự tham gia giữa chúng. Trong thực tế điều này có nghĩa là có một cơ sở dữ liệu khổng lồ mà tất cả các hệ thống sử dụng. Ví dụ, có một bảng dữ liệu khách hàng.
Phần lớn những gì tôi đã đọc dường như đề xuất dữ liệu không chuẩn hóa để mỗi hệ thống chỉ sử dụng cơ sở dữ liệu của nó và mọi cập nhật cho một hệ thống sẽ được truyền tới tất cả các hệ thống khác bằng cách sử dụng tin nhắn.
Tôi nghĩ rằng đây là một trong những cách để thực thi các ranh giới trong SOA - mỗi dịch vụ nên có cơ sở dữ liệu riêng, nhưng sau đó tôi đọc được điều này:
/programming/4019902/soa-joining-data-across-mult Môn-service
và nó cho thấy đây là điều sai trái để làm.
Việc tách riêng các cơ sở dữ liệu có vẻ như là một cách tốt để tách các hệ thống, nhưng bây giờ tôi hơi bối rối. Đây có phải là một tuyến đường tốt để đi? Có bao giờ bạn nên phân tách một cơ sở dữ liệu trên, giả sử một dịch vụ SOA, bối cảnh giới hạn DDD, một ứng dụng, v.v.?