আমি একটি সামান্য পাঠ (কঠিন উপায়) শিখেছি। আমি একটি নম্বর ক্রাঞ্চিং অ্যাপ্লিকেশন তৈরি করেছি যা উবুন্টু এডাব্লুএস ইসি 2 ক্লাউড পরিষেবাগুলিতে চালিত হয় (শক্তিশালী জিপিইউগুলি ব্যবহার করে), এবং আমি কেবল রিয়েলটাইমের অগ্রগতি দেখতে এটির জন্য একটি ফ্রন্ট-এন্ড তৈরি করতে চেয়েছিলাম। এটির রিয়েলটাইম ডেটার প্রয়োজনের কারণে, এটি স্পষ্ট ছিল যে আপডেটগুলি ধাক্কা দেওয়ার জন্য আমার ওয়েবসকেটগুলির প্রয়োজন ছিল।
এটি ধারণার প্রমাণ দিয়ে শুরু হয়েছিল এবং দুর্দান্ত কাজ করেছে। তবে তারপরে যখন আমরা এটি জনসাধারণের কাছে উপলব্ধ করতে চেয়েছিলাম তখন আমাদের ব্যবহারকারীর সেশনটি যুক্ত করতে হয়েছিল, সুতরাং আমাদের লগইন বৈশিষ্ট্যগুলির প্রয়োজন ছিল। এবং আপনি এটি কীভাবে দেখুন না কেন, ওয়েবসকেটটি এটি কোন ব্যবহারকারীর সাথে কাজ করে তা জানতে হবে আমরা ব্যবহারকারীদের প্রমাণীকরণের জন্য ওয়েবসকেটগুলি ব্যবহারের শর্টকাট নিয়েছিলাম । এটি সুস্পষ্ট বলে মনে হয়েছিল এবং এটি সুবিধাজনক ছিল।
সংযোগগুলি নির্ভরযোগ্য করে তুলতে আমাদের কিছুটা সময় চুপচাপ করতে হয়েছিল। আমরা কয়েকটি সস্তার ওয়েবসকেট টিউটোরিয়াল দিয়ে শুরু করেছি, কিন্তু আবিষ্কার করেছি যে সংযোগটি ভেঙে গেলে আমাদের বাস্তবায়ন স্বয়ংক্রিয়ভাবে পুনরায় সংযোগ করতে সক্ষম হয় নি। যখন আমরা সকেট-আইওতে স্যুইচ করেছি তখন এটির সমস্ত উন্নতি হয়েছে। সকেট-আইও একটি আবশ্যক!
সত্যি কথা বলতে গেলে , আমি মনে করি আমরা কিছু দুর্দান্ত সকেট-আইও বৈশিষ্ট্যগুলি বাদ দিয়েছি ।সকেট-আইওর কাছে আরও অনেকগুলি অফার রয়েছে এবং আমি নিশ্চিত, আপনি যদি এটি প্রাথমিক নকশায় বিবেচনা করেন তবে আপনি এ থেকে আরও বেশি কিছু পেতে পারেন। বিপরীতে, আমরা কেবল সকেট-আইওর ওয়েবসকেটের কার্যকারিতা সহ পুরানো ওয়েবসকেটগুলি প্রতিস্থাপন করেছি এবং এটি ছিল। (কোনও কক্ষ নেই, চ্যানেল নেই, ...) একটি নতুন নকশা সবকিছু আরও শক্তিশালী করতে পারে। তবে আমাদের জন্য সময় ছিল না। এটি আমাদের পরবর্তী প্রকল্পের জন্য মনে রাখার মতো কিছু।
এরপরে আমরা আরও বেশি সংখ্যক ডেটা (ব্যবহারকারীর ইতিহাস, চালান, লেনদেন, ...) সঞ্চয় করতে শুরু করি । আমরা এগুলি সবগুলি একটি এডাব্লুএস ডায়নামডব ডাটাবেসে সংরক্ষণ করেছিলাম এবং আবার আমরা সিআরইউডি অপারেশনগুলি সামনের প্রান্ত থেকে ব্যাকএন্ডে যোগাযোগ করার জন্য সকেট-আইও ব্যবহার করি। আমি মনে করি আমরা সেখানে ভুল পাল্টেছি। এটি একটি ভুল ছিল.
- কারণ অল্প সময়ের মধ্যেই আমরা জানতে পেরেছিলাম যে অ্যামাজনের ক্লাউড পরিষেবাগুলি (এডাব্লুএস) রিস্টল অ্যাপ্লিকেশনগুলির জন্য কিছু দুর্দান্ত লোড-ব্যালেন্সিং / স্কেলিং সরঞ্জাম সরবরাহ করে ।
- আমাদের এখন ধারণা আছে যে সিআরইউডি অপারেশনগুলির হ্যান্ডশেকগুলি সম্পাদন করার জন্য আমাদের প্রচুর কোড লিখতে হবে ।
- সম্প্রতি আমরা পেপাল একীকরণ বাস্তবায়ন করেছি। আমরা এটি কাজে লাগাতে পেরেছি। তবে আবার, সমস্ত টিউটোরিয়াল এটি RESTful API গুলি দিয়ে করছে । ওয়েবসকেট দিয়ে সেগুলি প্রয়োগ করতে আমাদের তাদের উদাহরণগুলি পুনরায় লিখতে / পুনর্বিবেচনা করতে হয়েছিল। যদিও আমরা এটি মোটামুটি দ্রুত কাজ করেছি। তবে মনে হচ্ছে আমরা প্রবাহের বিরুদ্ধে যাচ্ছি।
সব বলার পরে, আমরা পরের সপ্তাহে লাইভ যাব। আমরা সময় মতো সেখানে পৌঁছেছি, সবকিছু কাজ করে। এবং এটি দ্রুত, তবে এটি কি স্কেল হবে?