আপনি কি RedisConf-এর কিনোট ডেমো মনে আছে? যদি হ্যাঁ, তবে আপনি রিটেইল অ্যাপ্লিকেশন (RedisMart) এর পর্দার পিছনের ডেভেলপমেন্ট দেখতে উপভোগ করতে পারেন যেটি প্রেজেন্ট করা হয়েছিল। যদি না, তবে এখন Yiftach এবং Ash-কে তা প্রেজেন্ট করার সময়। ভিডিওর লিংক এখানে:
এই আর্টিকেল সিরিজের প্রথমটি। এটি আপনাকে RedisMart রিটেইল অ্যাপ্লিকেশনের মূল প্রয়োজনীয়তা এবং আর্কিটেকচারে কিছু ইনসাইট দেয় কিভাবে আপনি একটি প্রোডাক্ট ক্যাটালগ, একটি ডিস্ট্রিবিউটেড রিয়েল-টাইম ইনভেন্টরি, এবং একটি AI-পাওয়ার্ড প্রোডাক্ট সার্চ ইমপ্লিমেন্ট করতে পারেন। আপনি এছাড়া দেখবেন কীভাবে Redis Enterprise সেই সকল ফাংশনালিটি পাওয়ার করে।
প্রয়োজনীয়তা
সফ্টওয়্যার ডেভেলপমেন্টে যেনে থাকে, আসুন কিছু বেসিক রিকোয়ারমেন্ট ডিসকাস করি। এখানে কিছু অনौপচারিক ইউজার স্টোরি:
- একজন রিটেইল কাস্টমার হিসেবে:
- আমি দ্রুত (<১০০ms এন্ড-টু-এন্ড লেটেন্সি) ক্যাটালগ এবং প্রোডাক্ট ডিটেইলসে অ্যাক্সেস চাই çeşitli κριতেরিয়া অনুযায়ী (যেমন, ফুল-টেক্সট, প্রাইস রেঞ্জ, অন্য কাস্টমারদের রেটিং, বা ফেসেটেড সার্চ) প্রোডাক্ট খুঁজে পাওয়ার মাধ্যমে। হাই রেসপন্স টাইম হাই বাউন্স রেট ফলাফল দেয়।
- যদি আমি একটি প্রোডাক্টের ব্র্যান্ড নাম না জানি বা আমার আগে কেনা কিছুর মত কিছু চাই, তবে আমি ইমেজ দিয়ে প্রোডাক্ট শপ করতে চাই। আমার কাছে যা আছে সেটির সাথে ক্লোজ ম্যাচ বা ভিজুয়ালি সিমিলার একটি ক্যামেরা খুঁজে পাওয়া কুল হবে।
- আমি একটি নিরাপদ ডেলিভারি চাই বা অনলাইন কিনে স্টোরে বা কার্বসাইডে পিক আপ করতে চাই (ক্লিক অ্যান্ড কलेक्ट)।
- একজন ইনভেন্টরি ম্যানেজার হিসেবে:
- আমার একটি সঠিক, রিয়েল-টাইম ভিউ দরকার আমার ইনভেন্টরির যাতে আমার কাস্টমারদের জন্য সুপেরিয়র ফুলফিলমেন্ট এক্সপেরিয়েন্স প্রদান করতে পারি।
- আমি আমার ইনভেন্টরি অপ্টিমাইজ করতে চাই হাই-ডিমান্ড আইটেম স্টকে রাখতে এবং স্লো মুভিং গুডসের স্টক কমানতে।
- আমার বিভিন্ন স্টোর এবং/অথবা ফুলফিলমেন্ট সেন্টারের ইনভেন্টরির একটিニア রিয়েল-টাইম ভিউ দরকার স্টক অপ্টিমাইজ করতে।
আর্কিটেকচার
এখন যেহেতু আমরা প্রয়োজনীয়তা জানি, আপনি দেখুন Redis কীভাবে আমাদের সাহায্য করতে পারে:
- RediSearch সমৃদ্ধ প্রোডাক্ট সার্চ সক্ষম করে নাম্বারিক ফিল্টার, ফুল-টেক্সট সার্চ, জিও-ইন্ডেক্সিং, স্কোরিং, এবং অগ্রিগেশনের সাথে।
- Redis Enterprise-এর Active-Active ফিচার জিও-রিপ্লিকেটেড রিয়েল-টাইম আপডেট ইনভেন্টরির আক্রস আউট-অফ-দ্যা-বক্স প্রদান করে।
- RedisAI, RedisGears, এবং RediSearch লিভারেজ করা হয় একটি ডেটাবেজ-ইন্টিগ্রেটেড মেশিন-লার্নিং পাইপলাইন বিল্ড করতে রিয়েল-টাইম ইনফেরেন্স এবং ভেক্টর-সিমিলারিটি সার্চের জন্য।
সেখান থেকে, নিচের ডিজাইন কল্পনা করা অনেক কঠিন নয়:
ব্লু বক্সগুলো রিপ্রেজেন্ট করে সার্ভিসগুলো। রেড বক্সগুলো দেখায় সেই সার্ভিসগুলো দ্বারা ব্যবহৃত ডেটাবেজ।
আমরা কিছু মাইক্রোসার্ভিস অ্যাপ্রোচ ফলো করেছি যেমন:
- প্রতি সার্ভিসে একটি ডেটাস্টোর: প্রতিটি সার্ভিসের নিজস্ব ডেটা স্টোর থাকে, এবং ডেটা সার্ভিস ইন্টারফেসের মাধ্যমে এক্সচেঞ্জ হয় অন্য সার্ভিসের ডেটা স্টোরে সরাসরি অ্যাক্সেস করার বদলে।
- পলিগ্লট পারসিস্টেন্স: প্রতিটি সার্ভিস সেটি ব্যবহার করে যেটি তার রিকোয়ারমেন্ট অনুযায়ী সেরা ফিট। পলিগ্লট পারসিস্টেন্স সম্পর্কে কথা বলতে গেলে: Redis একটি ডেটা প্ল্যাটফর্ম যা আপনাকে মডিউলগুলো দ্বারা অফার করা ভিন্ন ফিচার এবং ডেটা মডেল কম্বাইন করে সেই ডেটা স্টোর বানাতে দেয় যেটি আপনার রিকোয়ারমেন্টকে বেফিট করে! এটা অবিস্মরণীয় নয় যে আমরা Redis এবং কিছু Redis মডিউল ব্যবহার করেছি রেড বক্সগুলো ইমপ্লিমেন্ট করতে।
ইমপ্লিমেন্টেশন
RedisMart একটি ইউজার ইন্টারফেস অফার করে যা ওয়েব-শপ ওয়েব অ্যাপ্লিকেশন দ্বারা সার্ভড। RedisMart-এ একটি ফ্রন্টএন্ড UI (কাস্টমার-ফেসিং রিটেইল ওয়েবসাইট) এবং একটি ব্যাকএন্ড UI (ইনভেন্টরি ম্যানেজ করার জন্য) রয়েছে। আমরা arrière-প্লেনে অ্যাপ্লিকেশন দ্বারা লিভারেজ করা একটি বান্চ সার্ভিস ইমপ্লিমেন্ট করেছি।
- Purchasing: পারচেস সার্ভিস (আশা অনুযায়ী) কাস্টমার পারচেস হ্যান্ডেল করে।
- Inventory: ইনভেন্টরি সার্ভিস ইনভেন্টরির স্টক পরিমাণ সম্পর্কে প্রশ্নের উত্তর দেয়, এবং পরিমাণ কমে যাওয়ায় যখন কাস্টমার আইটেম কেনে। ইনভেন্টরি আপডেটগুলোニアর রিয়েল-টাইমে অন্য লোকেশনের ইনভেন্টরিতে রিপ্লিকেট হয় Redis Enterprise-এর Active-Active ফিচার লিভারেজ করে। Redis Enterprise কনফ্লিক্ট-ফ্রি রেপ্লিকেটেড ডেটা টাইপস লিভারেজ করে কনকারেন্ট আপডেট ডিল করতে। এই কেসে, একটি রিসেট্যাবল পজিটিভ নেগেটিভ কাউন্টার ডেটা টাইপ ব্যবহার করা হয় কাউন্টার লস প্রতিরোধে।
- Product catalog: প্রোডাক্ট ক্যাটালগ সার্ভিস প্রোডাক্ট-রিলেটেড ইনফরমেশন প্রদান করে এবং প্রোডাক্ট খুঁজে বের করার সফিস্টিকেটেড উপায় অফার করে। এটি একটি Redis ডেটাবেজ ব্যবহার করে যাতে RediSearch + RedisJSON মডিউল ডিপ্লয়ড। RedisJSON আমাদের প্রোডাক্ট ডিটেইলস সরাসরি JSON ডকুমেন্ট হিসেবে স্টোর করতে দেয়। RediSearch JSON ডকুমেন্ট ইন্ডেক্স, কোয়েরি, এবং ফুল-টেক্সট সার্চ করতে পারে। প্রোডাক্ট আপডেটগুলো সহজেই প্রোপাগেট করা যায় একাধিক সাইটের আক্রস Redis Enterprise-এর Active-Active ফিচার ব্যবহার করে।
- Image recognition: অবশেষে, ইমেজ রিকগনিশন সার্ভিস একটি AI মডেল-সার্ভিং ফাংশনালিটি অফার করে ইমেজে ভেক্টর-সিমিলারিটি সার্চের জন্য। এটি একটি Redis ডেটাবেজ ব্যবহার করে যাতে RedisGears, RedisAI, এবং RediSearch মডিউল ইনস্টলড। RedisGears আমাদের একটি ডেটা পাইপলাইন বিল্ড করতে এবং সেটি এক্সিকিউট করতে দেয় ডেটার কাছে। আমরা Redis AI-র সুবিধা নিয়েছি AI মডেল সার্ভিং এবং ইনফেরেন্সের জন্য। RediSearch লিভারেজ করা হয় আসল সিমিলার ইমেজের জন্য সার্চ পেরফর্ম করতে AI মডেলের আউটপুটের ওপর ভিত্তি করে।
উল্লেখ করা হয়েছে যেন, এটি সিরিজের প্রথম আর্টিকেল। ইন্ডিভিজুয়াল সার্ভিসগুলো কীভাবে ইমপ্লিমেন্ট করা হয়েছে সেটি শিখতে আপডেট থাকুন।
RedisMart
এখন যেহেতু আমরা পর্দার পিছনে দেখেছি, আসুন দেখি অ্যাপ্লিকেশনটি স্টেজে কীভাবে দেখাবে।
হোম পেজ আপনাকে মূল প্রোডাক্ট ক্যাটেগরি দেখায়। একটি ক্যাটেগরিতে ক্লিক করলে প্রোডাক্ট ক্যাটালগ সার্ভিসের মাধ্যমে একটি সার্চ কোয়েরি ট্রিগার হয় যেটি প্রথম ১৬ প্রোডাক্ট রিটার্ন করে যেগুলো ঐ ক্যাটেগরির অন্তর্গত।
"Search products" ফিল্ড আপনাকে প্রোডাক্টের জন্য ফুল-টেক্সট সার্চ পেরফর্ম করতে দেয়। এটি নিচের সার্চ রেজাল্টস পেজে নিয়ে যায়:
সার্চ রেজাল্টস পেজের দুটি সেকশন রয়েছে: ফেসেটেড সার্চ এবং আসল রেজাল্ট লিস্ট। ফেসেটেড সার্চ ব্যবহার করা যায় সার্চ রেজাল্ট আরও লিমিট করতে। আপনি মেইন ক্যাটেগরি, সাব-ক্যাটেগরি, প্রাইস, এবং রেটিং দিয়ে ফিল্টার করতে পারেন। ব্লগ সিরিজের পার্ট টু-তে আমরা আলোচনা করব কীভাবে এই ফেসেটেড সার্চ RediSearch-র সাথে রিয়ালাইজ করা হয়েছে। আপনাকে একটি হিন্ট দেই RedisMart-এর ডিবাগ ভিউ দেখিয়ে:
যেমন আপনি দেখতে পাচ্ছেন, ট্যাগ এবং অগ্রিগেশন একটি রোল প্লে করে।
উপরের ডান কোণে ছোট ক্যামেরা আইকনে ক্লিক করলে আপনি একটি ছবি তুলতে পারেন কিছু খুঁজতে যেটি আপনি প্রোডাক্ট ক্যাটালগে চান। ডাগের নিচের ফটো আমাদের ডেটাবেজে অন্য কোনো ডাগ খুঁজে পায় নি…
… কিন্তু এটা সুন্দরভাবে কিছু হেডফোন খুঁজে পেল।
মান লিন আপনি একটি হেডফোন জোড়া ডিসাইড করেন এবং কেনতে চান। আপনার পছন্দ করার পর, RedisMart আপনাকে সেটি শপিং কার্টে যোগ করতে দেয়। চেকআউট প্রসেসে, আপনি সেটি ডেলিভার করাতে পারেন বা একটি নিকটবর্তী লোকেশন থেকে কালেক্ট করতে পারেন।
RediSearch-এর জিও-সার্চ এই লোকাল পিকআপ ফিচারকে পাওয়ার করে। ডিবাগ ভিউ আপনাকে আবার একটি হিন্ট দেয় কীভাবে এটি পেছনে রিয়ালাইজ করা হয়েছে।
যেনে কাস্টমার পারচেস কমপ্লিট করে, ইনভেন্টরি সার্ভিস জড়িত হয় স্টকে আইটেমের সংখ্যা কমাতে। এটা সরাসরি আমাদের অ্যাপ্লিকেশনের ব্যাকএন্ডে নিয়ে যায়, যা আমাদের ইনভেন্টরি ম্যানেজ করতে দেয়। RedisMart ভিজুয়ালাইজ করে কীভাবে ইমিডিয়েট ইনভেন্টরি আপডেট প্রতিটি রিপ্লিকেটেড সাইটে পর্যবেক্ষণ করা যায়। US-এ (GCP us-central1) একটি পারচেস চোখিমিচকি মাত্রে ইউরোপে (Azure north-europe) রিপ্লিকেট হয়।
একবার আবার, আমরা পরে আরও ডিটেইল কভার করব। এখানে মূল পয়েন্ট হলো আপনি একটি নিকটবর্তী লোকেশন থেকে ডেটা অ্যাক্সেস করতে পারেন খুব কম নেটওয়ার্ক লেটেন্সিতে, যখন ডেটা কনকারেন্টলি মডিফাই হয় একাধিক সাইটে তখন কাউন্টার লস প্রতিরোধ করা হয়।
নিচের ভিডিও देखकर অ্যাপ্লিকেশনটি একশনে দেখতে পারেন:
সারাংশ
আশা করি আপনি এই ব্লগ সিরিজের প্রথম পার্ট পড়তে উপভোগ করেছেন Redis-এ একটি ফুল-ফিচার্ড রিটেইল অ্যাপ্লিকেশন বিল্ড করার সম্পর্কে। যেনে আপনি দেখতে পাচ্ছেন, Redis রিয়েল-টাইম ডেটা প্ল্যাটফর্ম আমাদের প্রয়োজনীয়তা যেমন ইমিডিয়েট অ্যাক্সেস (১০০ms-এর কম এন্ড-টু-এন্ড লেটেন্সি) প্রোডাক্ট ইনফরমেশনে RediSearch + RedisJSON-এর ডকুমেন্ট ডেটাবেজ ক্যাপাবিলিটি লিভারেজ করে অ্যাড্রেস করতে দেয়। RediSearch + RedisGears + RedisAI-এর কোম্বিনেশন AI-পাওয়ার্ড ইমেজ সার্চ সক্ষম করে সিমিলার প্রোডাক্ট খুঁজে বের করতে প্রোডাক্ট ক্যাটালগে। অतरিক্তভাবে, ফেসেটেড এবং জিও-সার্চের মত ফিচার কভার করা হয়েছে। শেষে, কিন্তু কম না, আমরা আপনাকে দেখিয়েছি যে আপনি সহজে একটি জিও-রিপ্লিকেটেড, রিয়েল-টাইম ইনভেন্টরি বিল্ড করতে পারেন Redis Enterprise-এর Active-Active ফিচার বেসড। সেই সব মিলিয়ে, Redis রিয়েল-টাইম প্ল্যাটফর্ম রিটেইল কোম্পানিগুলকে সামগ্রিক কেনাকাটা অভিজ্ঞতা ইতিবাচকভাবে প্রভাবিত করতে, কাস্টমারদের জন্য সেরা সম্ভব ফুলফিলমেন্ট এক্সপেরিয়েন্স প্রদান করতে, এবং ইনভেন্টরি সবচেয়ে কস্ট-ইফেক্টিভভাবে অপ্টিমাইজ করতে সাহায্য করে।
RedisMart-এর জন্য আমরা যে ইন্ডিভিজুয়াল সার্ভিসগুলো ইমপ্লিমেন্ট করেছি সেগুলো সম্পর্কে আরও জানতে চান? তবে সিরিজের পরবর্তী ব্লগ আর্টিকেলের জন্য টিউন্ড থাকুন!
নিজে ট্রাই করতে চান? Redis-কে রিয়েল-টাইম ডেটা প্ল্যাটফর্ম হিসেবে হাতে খড়ি করতে কিছু লিংক:
- মডিউল সম্পর্কে আরও
- github.com/RediSearch
- github.com/RedisJSON
- github.com/RedisGears
- github.com/RedisAI
- Redis Enterprise Cloud
- Active-Active Geo-Distribution
ক্রেডিটস
এवरीওয়ানকে বড় ধন্যবাদ যারা এই ডেমো অ্যাপ্লিকেশনে কন্ট্রিবিউট করেছেন:
- Yiftach Shoolman এবং Ash Sahu RedisConf-এ ডেমো অ্যাপ্লিকেশন প্রেজেন্ট করার জন্য
- Redis Marketing টিম (বিশেষ করে Udi Gotlieb, Ash Sahu, এবং Doug Tidwell, এবং Bryson Coles) ডেমো অ্যাপ্লিকেশনের রিকোয়ারমেন্ট লিস্টে কন্ট্রিবিউট করার জন্য, RedisConf অর্গানাইজ করার জন্য, UI ডিজাইন সাহায্য করার জন্য এবং এই ব্লগ পোস্টে কন্ট্রিবিউট করার জন্য
- Technical Enablement টিম (বিশেষ করে Martin Forstner, Greg Georges, এবং David Maier) ডেমো অ্যাপ্লিকেশন ইমপ্লিমেন্ট, টেস্ট, এবং ডিজাইন করার জন্য — এবং এই ব্লগ পোস্টে কন্ট্রিবিউট করার জন্য
- CTO টিম (বিশেষ করে Leibale Eidelman, Guy Korland) মডিউল এবং ইমেজ রিকগনিশন সার্ভিস ডেভেলপ করার জন্য
- Product Management টিম (বিশেষ করে Pieter Cailliau, Emmanuel Keller, Jonathan Salomon, এবং Amiram Mizne) ডেমো অ্যাপ্লিকেশনের রিকোয়ারমেন্ট লিস্টে কন্ট্রিবিউট করার জন্য এবং প্রোডাক্ট ফিচার প্রদানের জন্য
- এবং যাদের আমরা এখানে মেনশন করতে ভুলে গেছি
আমরা এই ব্লগ সিরিজকে RedisMart অ্যাপ্লিকেশনের প্রাথমিক ডেভেলপার, Martin Forstner-কে ডেডিকেট করতে চাই। বড় দুঃখের সাথে শেয়ার করতে হচ্ছে যে তিনি সম্প্রতি দিবঙ্গ হয়েছেন। Martin-এর জ্ঞান, ট্যালেন্ট, এবং হিউমার সেন্স সেকেন্ড টু নন। তিনি Redis-র জন্য একটি সফ্টওয়্যার ইঞ্জিনিয়ার থেকে অনেক বেশি ছিলেন — তিনি একজন কলিগ, টিমমেট, মেন্টর, এবং একজন বন্ধু। শান্তিতে থাকুন, Martin, আমরা আপনাকে মিস করছি!