สำหรับผู้ที่แยกแอปพลิเคชันเสาหินออกเป็นไมโครเซอร์วิสคุณจะจัดการกับปัญหาการแยกฐานข้อมูลได้อย่างไร แอปพลิเคชันทั่วไปที่ฉันเคยใช้ทำการรวมฐานข้อมูลจำนวนมากด้วยเหตุผลด้านประสิทธิภาพและความเรียบง่าย
หากคุณมีตารางสองตารางที่มีความแตกต่างกันในเชิงตรรกะ (บริบทที่มีขอบเขตถ้าคุณต้องการ) แต่คุณมักจะทำการประมวลผลรวมกับข้อมูลจำนวนมากจากนั้นในเสาหินคุณมีแนวโน้มที่จะละทิ้งการวางแนววัตถุและใช้มาตรฐานฐานข้อมูลของคุณแทน เข้าร่วมคุณลักษณะเพื่อประมวลผลข้อมูลบนฐานข้อมูลก่อนที่จะส่งคืนมุมมองรวมกลับไปยังระดับแอปของคุณ
คุณจะปรับการแยกข้อมูลดังกล่าวออกเป็นไมโครเซอร์วิสได้อย่างไรโดยที่คุณคาดว่าจะต้อง "เข้าร่วม" ข้อมูลผ่าน API ไม่ใช่ที่ฐานข้อมูล
ฉันเคยอ่านหนังสือ Microservices ของ Sam Newman และในบทที่เกี่ยวกับการแยก Monolith เขาได้ยกตัวอย่างของ "Breaking Foreign Key Relationships" ซึ่งเขายอมรับว่าการเข้าร่วมข้าม API นั้นจะช้าลง - แต่เขากล่าวต่อไปว่า แอปพลิเคชันของคุณเร็วพออยู่แล้วมันสำคัญหรือไม่ว่ามันจะช้ากว่าเดิม?
นี่ดูเหมือนกะล่อนไปหน่อย? ประสบการณ์ของผู้คนคืออะไร? คุณใช้เทคนิคใดเพื่อให้การรวม API ทำงานได้อย่างยอมรับ