డెవ్ లాగ్: సిస్టమ్ నిజాయితీ

నిజం చెప్పే వ్యవస్థలను నిర్మించండి.

ఒక వ్యవస్థ దాని సిగ్నల్స్ ఎంతవరకు ఖచ్చితంగా ఉన్నాయో అంతవరకు మాత్రమే మంచిది. మీ క్వెరీల (queries) ద్వారా వృధా జరుగుతున్నా, మీ హెల్త్ చెక్స్ (health checks) తప్పుగా ఉన్నా, లేదా మీ టూల్స్ ఒకే పనిని మళ్ళీ మళ్ళీ చేస్తున్నా, మీ వ్యవస్థ నిజాయితీగా లేదని అర్థం.

నేను ఈరోజు నాలుగు వేర్వేరు సాంకేతిక అంశాలపై పనిచేశాను. ప్రతి అంశం ఒకే ప్రధాన ఉద్దేశ్యాన్ని కలిగి ఉంది: వ్యవస్థను నిజాయితీగా మార్చడం.

  1. డేటాబేస్ పనితీరు (Database Performance) మీకు అవసరం లేని డేటాను ఫెచ్ (fetch) చేయడం ఆపండి.
  • మీ డెవలప్‌మెంట్ ఎన్విరాన్‌మెంట్‌లో N+1 డిటెక్టర్‌ను ఉపయోగించండి. ఇది దాగి ఉన్న lazy-loadsలను స్పష్టమైన టాస్క్ లిస్ట్‌గా మారుస్తుంది.
  • ఉపయోగించని eager loadsలను తొలగించండి. మీ వ్యూ (view) ఒక కాలమ్‌ను ఉపయోగించకపోతే, దానిని ఫెచ్ చేయకండి.
  • ప్రతి రిక్వెస్ట్‌కు కాన్స్టెంట్లను మెమోయిజ్ (Memoize) చేయండి. ఒకే సైకిల్‌లో ఒకే విలువను పదేపదే లెక్కించకండి.
  • డ్యాష్‌బోర్డ్ క్వెరీలను గ్రూప్ చేయండి. ఇరవై చిన్న కౌంట్ కాల్స్ (count calls) స్థానంలో ఒక గ్రూప్డ్ క్వెరీని ఉపయోగించండి.
  1. నిజమైన హెల్త్ చెక్స్ (Real Health Checks) ఒక కాన్ఫిగరేషన్ ఉందో లేదో మాత్రమే చూసేది హెల్త్ చెక్ కాదు. అది కేవలం కాన్ఫిగరేషన్ చెక్ మాత్రమే.
  • నిజమైన హెల్త్ చెక్ అనేది కనెక్టివిటీని (reachability) నిరూపించాలి.
  • టార్గెట్ హోస్ట్ మరియు పోర్ట్‌కు ఒక సాకెట్‌ను (socket) ఓపెన్ చేయండి.
  • TCP, HTTP, లేదా TLS ప్రోబ్స్ (probes) మధ్య మారడానికి ఒక కాంట్రాక్ట్ లేదా ఇంటర్‌ఫేస్‌ను ఉపయోగించండి.
  • ప్రతి ప్రోబ్‌ను దాని స్వంత కనెక్షన్‌లో రన్ చేయండి. ఒక నెమ్మదైన సర్వీస్ మీ మొత్తం మానిటరింగ్ టూల్‌ను నిలిపివేయకూడదు.
  1. సురక్షితమైన AI టూల్స్ (Safer AI Tools - MCP) మీరు ఒక AI ఏజెంట్‌కు మీ సిస్టమ్ యాక్సెస్ ఇచ్చినప్పుడు, అది తప్పులు చేసే అవకాశం ఉందని మీరు భావించాలి.
  • Idempotency కీలను ఉపయోగించండి. ఒక ఏజెంట్ రిక్వెస్ట్‌ను మళ్ళీ ప్రయత్నించినప్పుడు, సర్వర్ డూప్లికేట్‌ను సృష్టించకుండా అదే ఫలితాన్ని తిరిగి ఇవ్వాలి.
  • డేటా బయటకు వెళ్లేటప్పుడు వ్యక్తిగత సమాచారాన్ని క్లీన్ చేయండి (Scrub). రెస్పాన్స్ పాత్‌ను (response path) ఒక పబ్లిక్ బౌండరీగా పరిగణించండి.
  • టైప్డ్ ఎర్రర్ కోడ్‌లను (typed error codes) ఉపయోగించండి. ముడి స్ట్రింగ్స్‌ను (raw strings) పంపకండి. ఒక ఏజెంట్ సరిగ్గా పనిచేయడానికి "not_found" వంటి స్ట్రక్చర్డ్ కోడ్‌లు అవసరం.
  1. ఐడెంటిటీ మరియు పాస్‌వర్డ్ రీసెట్లు (Identity and Password Resets) మీరు బహుళ వ్యవస్థలను ప్రభావితం చేస్తున్నప్పుడు క్రమం (order) ముఖ్యం.
  • పాస్‌వర్డ్ రీసెట్ బహుళ డైరెక్టరీలను ప్రభావితం చేస్తే, ఒకే ఒక 'సోర్స్ ఆఫ్ ట్రూత్' (source of truth)ను ఎంచుకోండి.
  • మొదట అధికారిక డైరెక్టరీకి (authoritative directory) డేటాను రాయండి.
  • క్రమాన్ని డాక్యుమెంట్ చేయండి. "నేను ప్రయత్నించినప్పుడు ఇది పనిచేసింది" అనేది వైఫల్యం సంభవించినప్పుడు విజయాన్ని గ్యారెంటీ ఇవ్వదు.

లక్ష్యం ఆకర్షణీయమైన ఫీచర్లను నిర్మించడం కాదు. మీరు చూడనప్పుడు కూడా నమ్మదగినదిగా ఉండే వ్యవస్థను నిర్మించడ