সার্কিট ব্রেকার প্যাটার্ন (Circuit Breaker Pattern) এবং এর ভূমিকা
সার্কিট ব্রেকার প্যাটার্ন হলো একটি ডিস্ট্রিবিউটেড সিস্টেমে ব্যবহৃত প্যাটার্ন, যা একাধিক মাইক্রোসার্ভিসের মধ্যে ব্যর্থতা প্রতিরোধ করতে এবং সিস্টেমের স্থায়িত্ব বজায় রাখতে সহায়ক। এটি এমন একটি কৌশল, যেখানে একটি নির্দিষ্ট সার্ভিস বারবার ব্যর্থ হলে সার্কিট ব্রেকার সেই সার্ভিসে পুনরায় অনুরোধ পাঠানো বন্ধ করে দেয়। ব্যর্থ সার্ভিস পুনরায় সচল না হওয়া পর্যন্ত এটি অনুরোধ গ্রহণ বন্ধ রাখে এবং নির্দিষ্ট সময় পর আবার পরীক্ষা করে দেখা হয় সার্ভিসটি সচল হয়েছে কিনা।
সার্কিট ব্রেকার প্যাটার্ন কীভাবে কাজ করে?
সার্কিট ব্রেকার প্যাটার্ন সাধারণত তিনটি অবস্থা বা স্টেট অনুসরণ করে:
- Closed (বন্ধ) স্টেট:
সার্কিট ব্রেকার যখন বন্ধ অবস্থায় থাকে, তখন এটি স্বাভাবিকভাবে কাজ করে এবং সমস্ত অনুরোধ নির্ধারিত সার্ভিসে পাঠায়। যদি সার্ভিস সফলভাবে রেসপন্স দেয়, তবে সার্কিট ব্রেকার বন্ধ থাকে। তবে একাধিক অনুরোধ ব্যর্থ হলে এটি Open (খোলা) স্টেটে চলে যায়। - Open (খোলা) স্টেট:
যদি নির্দিষ্ট সময়ে একাধিক অনুরোধ ব্যর্থ হয়, তবে সার্কিট ব্রেকার Open বা খোলা স্টেটে চলে যায় এবং এই অবস্থায় এটি সরাসরি অনুরোধ ব্লক করে। ফলে অনুরোধগুলো পুনরায় ব্যর্থ হওয়ার সম্ভাবনা কমে এবং সিস্টেমের চাপ হ্রাস পায়। - Half-Open (আধা-খোলা) স্টেট:
নির্দিষ্ট সময় পর সার্কিট ব্রেকার অল্প কিছু অনুরোধ সার্ভিসে পাঠায়। যদি অনুরোধ সফল হয়, তবে সার্কিট ব্রেকার পুনরায় Closed বা বন্ধ স্টেটে চলে যায়। অন্যথায়, এটি আবার Open স্টেটে ফিরে যায়।
সার্কিট ব্রেকার প্যাটার্নের ভূমিকা
ডিস্ট্রিবিউটেড সিস্টেমে বিভিন্ন সার্ভিস একে অপরের সাথে যোগাযোগ করে, এবং একটিমাত্র সার্ভিস ব্যর্থ হলে পুরো সিস্টেমে চাপ সৃষ্টি হতে পারে। সার্কিট ব্রেকার প্যাটার্নের প্রধান ভূমিকা হলো এই ধরনের চাপ এবং সম্ভাব্য ব্যর্থতা থেকে সিস্টেমকে রক্ষা করা। এটি সিস্টেমের স্থায়িত্ব ও নির্ভরযোগ্যতা বাড়াতে সহায়ক।
সার্কিট ব্রেকার প্যাটার্নের গুরুত্বপূর্ণ ভূমিকা:
- ব্যর্থতার সুরক্ষা (Failure Isolation): সার্কিট ব্রেকার ব্যর্থ সার্ভিস থেকে সিস্টেমের অন্যান্য অংশকে রক্ষা করে, ফলে ব্যর্থতা পুরো সিস্টেমে ছড়িয়ে পড়ে না।
- সিস্টেমের স্থিতিশীলতা বৃদ্ধি: সার্কিট ব্রেকার প্যাটার্নের মাধ্যমে সিস্টেমে অতিরিক্ত চাপ কমে, কারণ এটি বারবার ব্যর্থ অনুরোধগুলি বন্ধ রাখে এবং প্রয়োজনের সময়ই পুনরায় চেষ্টা করে।
- সিস্টেমের পারফরম্যান্স বজায় রাখা: ব্যর্থতার কারণে অতিরিক্ত লোড সৃষ্টি হয় না এবং সার্ভিসের পারফরম্যান্স অপরিবর্তিত থাকে, কারণ ব্যর্থ সার্ভিসে পুনরায় অনুরোধ পাঠানো হয় না।
- সক্ষম পুনরুদ্ধার: সার্ভিস পুনরায় সচল হলে সার্কিট ব্রেকার অটোমেটিকভাবে তা সনাক্ত করে এবং স্বাভাবিক অনুরোধ গ্রহণ করতে শুরু করে।
সার্কিট ব্রেকার প্যাটার্নের ব্যবহার উদাহরণ
- পেমেন্ট গেটওয়ে: যদি পেমেন্ট প্রসেসিং সার্ভিসে সমস্যা দেখা দেয়, তবে সার্কিট ব্রেকার প্যাটার্ন এটিকে সাময়িকভাবে বন্ধ রাখে। এরপর এটি পুনরায় চেষ্টা করে এবং সার্ভিসটি সচল হলে পুনরায় পেমেন্ট প্রসেসিং শুরু করে।
- API কল: কোনো থার্ড-পার্টি API থেকে অনুরোধ যদি বারবার ব্যর্থ হয়, তাহলে সার্কিট ব্রেকার প্যাটার্ন API-তে অনুরোধ পাঠানো বন্ধ রাখে এবং নির্দিষ্ট সময় পরে পুনরায় চেষ্টা করে।
- ব্যাংকিং সিস্টেম: কোনো ফান্ড ট্রান্সফার সিস্টেমে যদি সার্ভিস ব্যর্থ হয়, তবে সার্কিট ব্রেকার সেটি সাময়িকভাবে বন্ধ রাখে এবং পুনরায় পরীক্ষা করে সার্ভিস সচল হলে পুনরায় প্রক্রিয়া শুরু করে।
সারসংক্ষেপ
সার্কিট ব্রেকার প্যাটার্ন হলো এমন একটি কৌশল যা সিস্টেমের ব্যর্থতা থেকে রক্ষা করে এবং সিস্টেমকে স্থিতিশীল রাখে। এটি ব্যর্থতার ক্ষেত্রে সার্ভিসের উপর লোড কমায়, অতিরিক্ত চাপ প্রতিরোধ করে এবং সার্ভিস পুনরায় সচল হলে স্বয়ংক্রিয়ভাবে কাজ শুরু করে। সার্কিট ব্রেকার প্যাটার্ন মাইক্রোসার্ভিস আর্কিটেকচারের একটি গুরুত্বপূর্ণ উপাদান, যা সিস্টেমের নির্ভরযোগ্যতা ও স্থায়িত্ব নিশ্চিত করতে সহায়ক।
Read more