વેબ એડમિન એ એક વિન્ડો છે, સત્યનો બીજો સ્ત્રોત નથી

APX વેબ એડમિન પેનલ સિસ્ટમનું કેન્દ્ર નથી.

ડિઝાઇન કડક છે. daemon સ્ટેટ (state) પર અધિકાર ધરાવે છે. વેબ UI એક લોકલ ક્લાયન્ટ છે. આ તફાવત મહત્વનો છે. તે નક્કી કરે છે કે સત્ય ક્યાં રહેલું છે અને ડેટામાં કેટલો ફેરફાર (drift) થઈ શકે છે.

APC પોર્ટેબલ કોન્ટેક્સ્ટ લેયર (context layer) પૂરું પાડે છે. APX રનટાઇમ અને ટૂલિંગ લેયર પૂરું પાડે છે. વેબ એડમિન APX નો ભાગ છે. તે તમને બ્રાઉઝરમાં રનટાઇમનું નિરીક્ષણ કરવા દે છે. તે પ્રોજેક્ટના સત્યની પોતાની અલગ નકલ (copy) રાખતું નથી.

આર્કિટેક્ચર આ રીતે કામ કરે છે:

  • daemon એક લોકલ HTTP સર્વર ચલાવે છે.
  • દરેક સપાટી (surface) HTTP દ્વારા daemon સાથે વાત કરે છે.
  • વેબ એડમિન daemon દ્વારા સર્વ કરવામાં આવે છે.
  • બ્રાઉઝર daemon પાસેથી ટોકન મેળવે છે.

બ્રાઉઝર એ પીઅર ડેટાબેઝ (peer database) નથી. તે માત્ર એક સપાટી છે. જ્યારે વેબ પેનલ સત્યનો બીજો સ્ત્રોત બની જાય છે, ત્યારે તે નિષ્ફળ જાય છે.

સ્ટેટની બે નકલો ભૂલો તરફ દોરી જાય છે:

  • જ્યારે UI કંઈક બીજું બતાવે છે ત્યારે CLI કંઈક અલગ લખે છે.
  • બ્રાઉઝર સેશન એક કોન્ફિગ (config) એડિટ કરે છે પરંતુ daemon જૂનો ડેટા વાપરે છે.
  • રીલોડ કરવાથી એક પ્રોજેક્ટ દેખાય છે જ્યારે બીજી ટેબમાં જૂનો (stale) ડેટા દેખાય છે.
  • UI ફિક્સ ક્યારેય વાસ્તવિક રનટાઇમ સુધી પહોંચતું નથી.

APX બ્રાઉઝરને 'થિન' (thin) રાખીને આનાથી બચે છે. UI daemon ને પૂછે છે. daemon કોર (core) ને પૂછે છે. કોર વાસ્તવિક બેકિંગ સ્ટોર (backing store) વાંચે છે અથવા લખે છે. આ ચેઇન સરળ છે. સરળતા સારી છે.

એક સારું લોકલ પેનલ ત્રણ વસ્તુઓ કરે છે:

  • લાઈવ સ્ટેટ (live state) બતાવે છે.
  • એક નાની એક્શન (action) મોકલે છે.
  • એક્શન પછી ફરીથી વેલિડેટ (revalidate) કરે છે.

પેનલ તમને પ્રોજેક્ટ્સ, એજન્ટ્સ, રૂટિન્સ, સેશન્સ, MCPs અને સેટિંગ્સ બ્રાઉઝ કરવાની મંજૂરી આપે છે. તે સિસ્ટમનો એક વ્યૂ (view) છે, સિસ્ટમનું ફોર્ક (fork) નથી.

અમલીકરણની વિગતો (Implementation details) તેને લોકલ રાખે છે:

  • Dev મોડ Vite નો ઉપયોગ કરે છે અને daemon ને પ્રોક્સી કરે છે.
  • Production daemon માંથી બિલ્ટ એપ સર્વ કરે છે.
  • સેમ ઓરિજિન (Same origin) ઓથેન્ટિકેશન (auth) અને રાઉટિંગને સરળ રાખે છે.
  • બ્રાઉઝરને ક્યારેય ડાયરેક્ટ રિપો (repo) રાઈટ એક્સેસની જરૂર પડતી નથી.

તેનો ફાયદો વિઝ્યુઅલ પોલિશ (visual polish) નથી. ફાયદો એ છે કે દરેક એક્શન એક બેકએન્ડ (backend) દ્વારા ઉકેલાય છે.

જો તમે પેનલમાં કોઈ સેટિંગ એડિટ કરો છો, તો પેનલ તે ફેરફાર daemon ને સબમિટ કરે છે. daemon પ્રોજેક્ટ સ્ટોરને અપડેટ કરે છે. પછીનું રેન્ડર (render) એ જ સત્યના સ્ત્રોતને વાંચે છે જે CLI વાંચે છે. એક સિસ્ટમ, અનેક સપાટીઓ.

UI તમારા પ્રોજેક્ટને નુકસાન પહોંચાડ્યા વિના ગાયબ થઈ શકે છે. તમે ટેબ બંધ કરી શકો છો અથવા મશીન બદલી શકો છો. સ્ટેટ daemon માં અને .apc/ ફોલ્ડરમાં રહે છે.

મેન્ટલ મોડલ (mental model) સરળ છે:

  • APC: પ્રોજેક્ટ શું છે તે.
  • APX: પ્રોજેક્ટ કેવી રીતે ચાલે છે તે.
  • Web admin: તે રનટાઇમમાં જોવાની એક વિન્ડો.

આ સીમાને સ્વચ્છ રાખો. સ્ટેક બદલી શકાય તેવો રહેશે. બ્રાઉઝર વૈકલ્પિક રહેશે. daemon અધિકૃત રહેશે. પ્રોજેક્ટ પોર્ટેબલ રહેશે.

Source: https://dev.to/agentprojectcontext/the-web-admin-is-a-window-not-a-second-source-of-truth-2aip

Optional learning community: https://t.me/GyaanSetuAi