𝗜𝘀 𝗬𝗼𝘂𝗿 𝗦𝗰𝗮𝗹𝗮𝗯𝗹𝗲 𝗕𝗮𝗰𝗸𝗲𝗻𝗱 𝗮 𝗧𝗶𝗰𝗸𝗶𝗻𝗴 𝗧𝗶𝗺𝗲 𝗕𝗼𝗺𝗯?

കൂടുതൽ സെർവറുകൾ ചേർക്കുന്നതാണ് സ്കെയിലിംഗ് എന്ന് പല ഡെവലപ്പർമാരും കരുതുന്നു. കൂടുതൽ ഉപയോക്താക്കളെ കൈകാര്യം ചെയ്യാൻ അവർ ക്ലൗഡ്-നേറ്റീവ് ടൂളുകളും ഡിസ്ട്രിബ്യൂട്ടഡ് ഡാറ്റാബേസുകളും ഉപയോഗിക്കുന്നു. എന്നാൽ ഇത് പലപ്പോഴും പുതിയൊരു പ്രശ്നത്തിന് കാരണമാകുന്നു. നിങ്ങൾ ഒരു കോട്ടയല്ല നിർമ്മിക്കുന്നത്, മറിച്ച് തകരാൻ സാധ്യതയുള്ള ഒരു കാർഡ് വീടാണ് (house of cards).

കൃത്യമായ പ്ലാനില്ലാതെ ഹൊറിസോണ്ടൽ സ്കെയിലിംഗ് നടത്തുന്നത് നിങ്ങളുടെ ഫെയിലർ ഡൊമെയ്‌നുകളെ (failure domains) വർദ്ധിപ്പിക്കുകയേയുള്ളൂ. നിങ്ങളുടെ സിസ്റ്റത്തിന് ഫോൾട്ട് ടോളറൻസ് (fault tolerance) ഇല്ലെങ്കിൽ, ഒരു ചെറിയ പിശക് പോലും എല്ലാം തകരാൻ കാരണമായേക്കാം.

ഒരു യഥാർത്ഥ സിസ്റ്റം നിർമ്മിക്കുന്നതിന് നിങ്ങൾ രണ്ട് കാര്യങ്ങളിൽ ശ്രദ്ധ കേന്ദ്രീകരിക്കണം:

  1. ഫോൾട്ട് ടോളറൻസ് (Fault Tolerance) കൂടുതൽ ഇൻസ്റ്റൻസുകൾ ചേർക്കുന്നത് കോറിലേറ്റഡ് ഫെയിലറുകളെ (correlated failures) തടയുന്നില്ല. പിശകുകൾ പടരാതിരിക്കാൻ അവയെ ഐസൊലേറ്റ് (isolate) ചെയ്യേണ്ടതുണ്ട്.
  1. ഡാറ്റാ കൺസിസ്റ്റൻസി (Data Consistency) വേഗതയ്ക്ക് 'ഇവഞ്ചുവൽ കൺസിസ്റ്റൻസി' (eventual consistency) മികച്ചതാണ്. എന്നാൽ നിർണ്ണായകമായ ബിസിനസ് ലോജിക്കിന് ഇത് ഒട്ടും അനുയോജ്യമല്ല. പേയ്‌മെന്റുകൾക്കോ അക്കൗണ്ട് ബാലൻസിനോ വേണ്ടി നിങ്ങൾക്ക് 'സ്ട്രോങ്ങ് കൺസിസ്റ്റൻസി' (strong consistency) ആവശ്യമാണ്.

യഥാർത്ഥ സ്കെയിലബിലിറ്റി എന്നത് റെസിലിയൻസിനെ (resilience) കുറിച്ചാണ്. ഈ തത്വങ്ങൾ നിങ്ങൾ അവഗണിക്കുകയാണെങ്കിൽ, പരാജയങ്ങൾക്കായി നിങ്ങൾ ഒരു വലിയ മൈതാനം ഒരുക്കുകയേയുള്ളൂ. ഏറ്റവും മോശമായ സാഹചര്യങ്ങളെ മുൻകൂട്ടി കണ്ട് ഇന്ന് തന്നെ ഡിസൈൻ ചെയ്യുക.

Source: https://dev.to/prabashanadev/is-your-scalable-backend-a-ticking-time-bomb-6o7