Prosedur tersimpan adalah detail implementasi. Fungsi basis data, lambdas, atau skrip shell yang tersimpan di suatu tempat di sistem file semuanya detail implementasi dan tidak relevan untuk arsitektur.
kebanyakan buku tentang layanan microser merekomendasikan satu database per layanan microser.
Oke, jadi kita bisa membuat kode prosedur tersimpan di basis data ini.
lagi kebanyakan buku arsitektur microservice menyatakan bahwa mereka harus otonom dan longgar digabungkan
Antara kapabilitas bisnis, siklus hidup pengembangan, manajemen, penyebaran, lokasi tim, dll. Tidak ada hubungannya dengan detail implementasi. Layanan Microsoft tidak menyelesaikan masalah teknis (justru sebaliknya). Mereka datang untuk memecahkan masalah dengan manajemen dan waktu ke pasar. Itu strategi, bukan taktik. Cara gagal-cepat dengan biaya serendah mungkin. Jika kemampuan bisnis tertentu terbukti tidak berharga, kami menjatuhkannya tanpa mengacaukan kemampuan lain, penyebaran, manajemen proyek, rilis ...
Perhatikan bahwa "split" sudah bertindak seperti agen decoupling. Katakanlah kita memiliki dua layanan, A didukung oleh Oracle dan B oleh MongoDB. Jika kita tidak melanggar aturan emas decoupling, harus dimungkinkan untuk menjatuhkan A + Oracle dengan efek samping yang dapat diabaikan pada B.
Menggunakan prosedur tersimpan yang ditulis khusus di Oracle, memasangkan dengan erat microservice ke teknologi itu.
Mungkin menyebabkan vendor terkunci. Sering kali, vendor dikenakan oleh bisnis karena alasan historis atau kontraktual 1 . Penting untuk mengetahui cara tidak mengunci kode kami ke vendor. Misalnya, beberapa ORM dan kerangka kerja menerapkan bahasa permintaan baru yang menyembunyikan fungsi dan fitur bawaan database.
Meskipun, jika layanan kami cukup mikro, vendor lock-in tidak lagi menjadi masalah karena berdampak kecil pada keseluruhan. Sebagian kecil yang seharusnya dapat diganti (atau diisolasi) dengan cepat.
kebanyakan buku MSA (yang telah saya baca) merekomendasikan bahwa layanan microser harus berorientasi bisnis (dirancang menggunakan DDD).
Itu harus didorong oleh bisnis dan inilah masalahnya. Tidak semua bisnis memanfaatkan DDD. DDD dan layanan microsoft tumpang tindih di banyak titik, tetapi mereka tidak menyebabkan-efek. Kita bisa berakhir dengan ekosistem layanan mikro yang terdiri dari layanan anemia. Atau terdiri dari gabungan keduanya: layanan yang mengimplementasikan domain kompleks dan layanan anemia bodoh yang menyediakan POJO langsung dari DB. Tidak ada yang salah dengan itu.
Mengenai buku, mereka hanya fokus pada eksekusi strategi. Taktik - bagaimana memanfaatkan komputasi terdistribusi - bagaimana membuatnya bekerja untuk sukses, tetapi mereka (biasanya) agnostik terhadap strategi. Strategi bervariasi dari perusahaan ke perusahaan dan jarang tergantung pada pengembang. Jadi, kami masih harus meramalkan dan menyesuaikan apa yang dikatakan buku-buku dengan kebutuhan, persyaratan, dan kendala spesifik kami. Tujuannya adalah membuat strategi bisnis menguntungkan dan berkelanjutan.
Ingatlah selalu bahwa arsitektur apa pun merupakan sarana untuk mencapai tujuan. Aturan bisnis. Kami tidak membangun ekosistem layanan mikro untuk mode atau cinta untuk seni.