समस्या
TopSec इसलिए मौजूद है ताकि वह विशाल इन्फ्रास्ट्रक्चर या प्रोडक्ट के लिए ज़रूरत से बहुत भारी स्टैक्स पर निर्भर हुए बिना डेटा को रीयल-टाइम में एकत्र, सिंक और विज़ुअलाइज़ कर सके। ब्रीफ कहने में सरल था, बनाने में कठिन: कई सर्विसें एक साथ बात करते हुए भी डेटा को जीवंत, तेज़ और सुसंगत बनाए रखना।
सबसे कठिन फ़ैसला
.NET 8 बैकएंड में क्या रहेगा और Next.js से क्या हल होगा, इसके बीच साफ़ रेखा खींचना। एक सूक्ष्म मामले ने यह रेखा स्पष्ट कर दी: /api routes और next-intl middleware मिलकर /es/api/* की ओर 307 redirects बना रहे थे। तकनीकी रूप से सही, व्यवहार में टूटा हुआ। कुछ locales पर realtime और stats endpoints चुपचाप फेल हो रहे थे।
जो patch आपसे कोई नहीं माँगता, वही engineer rate को न्यायसंगत ठहराता है: redirect rules एक-एक करके ठीक करने के बजाय, मैंने middleware matcher को फिर से लिखकर /api को पूरी तरह से बाहर कर दिया। देखने में छोटा परिवर्तन, आर्किटेक्चरली बहुत बड़ा।
बहुत जल्दी optimise करना ख़राब है। पहले दिन से performance को नज़रअंदाज़ करना उससे भी ख़राब।
कार्य सिद्धांत
दूसरा फ़ैसला PostgreSQL को सच्चाई का एकमात्र स्रोत बनाए रखना था। इस प्रोडक्ट के लिए consistency और जटिल queries लिखने की क्षमता, NoSQL store से निचोड़ी जा सकने वाली किसी भी speed gain से ज़्यादा क़ीमती थी। उबाऊ ठीक है, जब उबाऊ सही है।
जो मैंने तोड़ा
एक बार production इसलिए गिरा क्योंकि मैंने मान लिया कि एक Docker image वाक़ई फिर से बनी है। «नया» कोड पुरानी जैसा ही व्यवहार कर रहा था। असली अपराधी था npm ci जो package-lock न होने पर चुपचाप फेल हो रहा था और build को असंगत छोड़ रहा था। मैंने application logic डिबग करने में घंटों गँवाए, जबकि असली समस्या pipeline में थी।
सबक
हर deploy पर तब तक भरोसा मत करो जब तक तुमने अपनी आँखों से देख न लिया हो कि कौन सा artifact वाक़ई चल रहा है। image का SHA, container का hash, boot पर build commit log करो। यह तुम्हारा अब तक का सबसे सस्ता मिनट होगा।
परिणाम
- VPS पर स्थिर multi-service architecture: backend, frontend, Redis, PostgreSQL, nginx, सब समन्वित।
- Middleware को फिर से लिखने के बाद routing और realtime errors में बड़ी गिरावट।
- सटीक caching और ज़िम्मेदारियों के साफ़ बँटवारे से response times बेहतर हुए।
- Architecture तैयार है कि core को फिर से लिखे बिना नए modules जोड़े जा सकें।
- सार्वजनिक सतह: mkir.es। और गहरे technical walkthroughs माँगने पर उपलब्ध।