আমি একতরফা পদ্ধতিতে অভ্যস্ত থাকায় এখনও মাইক্রোসার্ভিস আর্কিটেকচারের চারপাশে আমার মাথা গুটিয়ে দেওয়ার চেষ্টা করছি
ধরা যাক আমরা একটি অত্যন্ত সরলীকৃত উবার বুকিং সিস্টেম তৈরি করার চেষ্টা করি । : কিছু প্রক্রিয়া সহজ করতে আমরা ধরুন আমরা 3 সেবা এবং ক্লায়েন্টের জন্য একটি গেটওয়ে API দাও Booking
, Drivers
, Notification
এবং আমরা নিম্নলিখিত কর্মপ্রবাহ আছে:
নতুন বুকিং তৈরি করার সময়:
- বিদ্যমান ব্যবহারকারীর ইতিমধ্যে বুকিং আছে কিনা তা পরীক্ষা করুন
- উপলব্ধ ড্রাইভারদের তালিকা পান
- বুকিং নিতে ড্রাইভারদের বিজ্ঞপ্তি পাঠান
- ড্রাইভার বুকিং আপ
ধরা যাক যে সমস্ত বার্তাপ্রেরণগুলি সহজ রাখার জন্য কাফকার মতো একটি মেসেজিং বাসের চেয়ে কোনও HTTP কলের মাধ্যমে সম্পন্ন হয়।
সুতরাং এই ক্ষেত্রে, আমি ভেবেছিলাম যে Booking
পরিষেবাটি বুকিংয়ের জন্য চেকিং করতে পারে। তবে তারপরে উপলব্ধ ড্রাইভারদের তালিকা এবং বিজ্ঞপ্তি পাওয়া উচিত কে? আমি এটি গেটওয়ে স্তরে করার কথা ভাবছি তবে এখন যুক্তিটি হ'ল এক জায়গায় দুটি জায়গায় বিভক্ত:
Gateway
- উপলব্ধ ড্রাইভার + বিজ্ঞপ্তি প্রেরণের তালিকা পানBooking
- বিদ্যমান বুকিং জন্য পরীক্ষা করুন
এবং আমি নিশ্চিত যে গেটওয়েটি এটি করার সঠিক জায়গা নয় তবে আমার মনে হয় আমরা যদি এটি Booking
পরিষেবাতে করে চলেছি তবে এটি দৃ tight়ভাবে মিলিত হচ্ছে?
এটিকে আরও জটিল করে তোলার জন্য, আমাদের যদি এমন আরও একটি প্রকল্প থাকে যা বুকিং সিস্টেমটি পুনরায় ব্যবহার করতে চায় তবে এর উপরে তার নিজস্ব ব্যবসায়িক যুক্তি থাকে? এ কারণেই আমি গেটওয়ে স্তরে এটি করার কথা ভেবেছিলাম যাতে নতুন প্রকল্পের গেটওয়ে বিদ্যমান ব্যবসায়ের চেয়ে নিজস্ব ব্যবসায়িক যুক্তি রাখতে পারে।
আমি মনে করি এটি করার আরেকটি উপায় হ'ল প্রতিটি প্রকল্পের নিজস্ব বুকিং পরিষেবা রয়েছে যা মূল বুকিং পরিষেবাটিতে কথা বলবে তবে আমি নিশ্চিত নই যে এখানে সেরা পদ্ধতির কী :-)