Một tính năng tìm kiếm có thể được mô hình hóa như một dịch vụ riêng biệt với trách nhiệm riêng biệt từ hai dịch vụ bạn đề cập. Vì vậy, cách tiếp cận ở đây có thể là tạo một dịch vụ mới ('tìm kiếm') và lưu trữ bản sao dữ liệu từ cả hai dịch vụ ở dạng dễ lập chỉ mục và tìm kiếm, cũng có thể được chuẩn hóa để nhanh chóng đưa ra kết quả định dạng mong muốn.
Vì vậy, ví dụ, bạn có thể có cơ sở dữ liệu SQL kế thừa bằng cách sử dụng ví dụ mySql, microservice khác sử dụng, ví dụ MongoDB và dịch vụ tìm kiếm mới sử dụng elaticsearch với dữ liệu từ cả hai đã được dán cùng nhau (không chuẩn hóa) để truy cập thuận tiện hơn. tất nhiên các chi tiết sẽ phụ thuộc vào loại tìm kiếm bạn cần thực hiện.
Dữ liệu từ hai dịch vụ tốt nhất sẽ được chuyển không đồng bộ đến chỉ mục tìm kiếm thông qua một xe buýt sự kiện như Kafka hoặc Hermes để tăng thông lượng và giảm khớp nối giữa các dịch vụ. Một sự thay đổi trong bất kỳ một trong hai dịch vụ sẽ gửi một sự kiện thông báo cho dịch vụ tìm kiếm cũng cập nhật dữ liệu của nó.
Tất nhiên, có chi phí cho một sự chậm trễ bổ sung giữa các thay đổi trong dịch vụ và trong dịch vụ tìm kiếm, nhưng vì microservice thường được sử dụng trong các hệ thống được phân phối, nên một số độ trễ và sự không nhất quán tạm thời là không thể tránh khỏi. Có một dịch vụ bổ sung và sử dụng thêm dung lượng lưu trữ cho một bản sao dữ liệu đã có trong hai dịch vụ kia cũng là một chi phí điển hình của việc có một hệ thống phân tán và có khả năng mở rộng cao bằng cách sử dụng microservice.