คุณลักษณะการค้นหาสามารถจำลองเป็นบริการแยกต่างหากโดยมีความรับผิดชอบแยกต่างหากจากบริการทั้งสองที่คุณกล่าวถึง ดังนั้นวิธีการที่นี่อาจเป็นการสร้างบริการใหม่ ('ค้นหา') และให้มันจัดเก็บสำเนาข้อมูลจากบริการทั้งสองในรูปแบบที่ง่ายต่อการสร้างดัชนีและค้นหา รูปแบบที่ต้องการ
ตัวอย่างเช่นคุณสามารถมีฐานข้อมูล SQL ดั้งเดิมที่ใช้เช่น mySql, ไมโครบริการอื่น ๆ ที่ใช้เช่น MongoDB และบริการค้นหาใหม่โดยใช้ elasticsearch ด้วยข้อมูลจากทั้งสองวางกันแล้ว (denormalized) เพื่อการเข้าถึงที่สะดวกยิ่งขึ้น แน่นอนว่ารายละเอียดจะขึ้นอยู่กับประเภทของการค้นหาที่คุณต้องดำเนินการ
ข้อมูลจากทั้งสองบริการจะถูกถ่ายโอนแบบอะซิงโครนัสอย่างดีที่สุดไปยังดัชนีการค้นหาผ่านทางอีเวนต์บัสเช่น Kafka หรือ Hermes เพื่อเพิ่มปริมาณงานและลดการเชื่อมต่อระหว่างบริการ การเปลี่ยนแปลงใด ๆ ในสองบริการนี้จะส่งกิจกรรมแจ้งบริการการค้นหาเพื่ออัพเดทข้อมูล
แน่นอนว่ามีค่าใช้จ่ายของความล่าช้าเพิ่มเติมระหว่างการเปลี่ยนแปลงในบริการและในบริการค้นหา แต่เนื่องจาก microservices มักจะใช้ในระบบที่มีการกระจายความล่าช้าและความไม่แน่นอนบางอย่างชั่วคราวจึงไม่สามารถหลีกเลี่ยงได้ การมีบริการเพิ่มเติมและการใช้พื้นที่เก็บข้อมูลเพิ่มเติมสำหรับสำเนาของข้อมูลที่มีอยู่ในบริการอีกสองบริการนั้นเป็นค่าใช้จ่ายทั่วไปในการมีระบบกระจายและปรับขนาดได้สูงโดยใช้ microservices