𝗧𝗵𝗲 𝗪𝗲𝗯 𝗔𝗱𝗺𝗶𝗻 𝗜𝘀 𝗔 𝗪𝗶𝗻𝗱𝗼𝘄, 𝗡𝗼𝘁 𝗔 𝗦𝗲𝗰𝗼𝗻𝗱 𝗦𝗼𝘂𝗿𝗰𝗲 𝗢𝗳 𝗧𝗿𝘂𝘁𝗵
APX వెబ్ అడ్మిన్ ప్యానెల్ అనేది సిస్టమ్ యొక్క కేంద్రం కాదు.
దీని డిజైన్ చాలా కచ్చితమైనది. స్టేట్ (state) అనేది డెమన్ (daemon) ఆధీనంలో ఉంటుంది. వెబ్ UI అనేది ఒక లోకల్ క్లయింట్ మాత్రమే. ఈ తేడా చాలా ముఖ్యం. సత్యం (truth) ఎక్కడ ఉంటుంది మరియు డేటా ఎంతవరకు మారవచ్చు (drift) అనేది ఇది నిర్ణయిస్తుంది.
APC పోర్టబుల్ కాంటెక్స్ట్ లేయర్ను అందిస్తుంది. APX రన్టైమ్ మరియు టూలింగ్ లేయర్ను అందిస్తుంది. వెబ్ అడ్మిన్ APX కి చెందినది. ఇది బ్రౌజర్లో రన్టైమ్ను పరిశీలించడానికి మీకు అనుమతిస్తుంది. ఇది ప్రాజెక్ట్ యొక్క సత్యానికి (project truth) స్వంత కాపీని కలిగి ఉండదు.
ఆర్కిటెక్చర్ ఈ విధంగా పనిచేస్తుంది:
- డెమన్ ఒక లోకల్ HTTP సర్వర్ను నడుపుతుంది.
- ప్రతి సర్ఫేస్ HTTP ద్వారా డెమన్తో మాట్లాడుతుంది.
- వెబ్ అడ్మిన్ను డెమన్ అందిస్తుంది.
- బ్రౌజర్ డెమన్ నుండి ఒక టోకెన్ను పొందుతుంది.
బ్రౌజర్ అనేది ఒక పీర్ డేటాబేస్ కాదు. అది కేవలం ఒక సర్ఫేస్ మాత్రమే. వెబ్ ప్యానెల్ అనేది రెండో సత్య మూలం (second source of truth) గా మారినప్పుడు, అది విఫలమవుతుంది.
స్టేట్ యొక్క రెండు కాపీలు ఉండటం వల్ల లోపాలు (errors) వస్తాయి:
- UI ఒకదాన్ని చూపిస్తుంటే, CLI మరొకదాన్ని రాస్తుంది.
- బ్రౌజర్ సెషన్ ఒక కాన్ఫిగరేషన్ను ఎడిట్ చేస్తుంది, కానీ డెమన్ పాత డేటాను ఉపయోగిస్తుంది.
- ఒక రీలోడ్ ఒక ప్రాజెక్ట్ను చూపిస్తే, మరొక ట్యాబ్ పాత (stale) డేటాను చూపిస్తుంది.
- UI లో చేసే మార్పు అసలు రన్టైమ్కు చేరుకోదు.
బ్రౌజర్ను 'థిన్' (thin) గా ఉంచడం ద్వారా APX దీనిని నివారిస్తుంది. UI డెమన్ను అడుగుతుంది. డెమన్ కోర్ను (core) అడుగుతుంది. కోర్ అసలైన బ్యాకింగ్ స్టోర్ను చదువుతుంది లేదా రాస్తుంది. ఈ గొలుసు (chain) చాలా సరళమైనది. సరళంగా ఉండటమే మంచిది.
ఒక మంచి లోకల్ ప్యానెల్ మూడు పనులు చేస్తుంది:
- లైవ్ స్టేట్ను చూపించడం.
- ఒక చిన్న చర్యను (action) పంపడం.
- చర్య తర్వాత రీవాలిడేట్ (revalidate) చేయడం.
ఈ ప్యానెల్ ప్రాజెక్ట్లు, ఏజెంట్లు, రూటీన్లు, సెషన్లు, MCPలు మరియు సెట్టింగ్లను బ్రౌజ్ చేయడానికి మీకు అనుమతిస్తుంది. ఇది సిస్టమ్ యొక్క ఒక వ్యూ (view) మాత్రమే, సిస్టమ్ యొక్క ఫోర్క్ (fork) కాదు.
ఇంప్లిమెంటేషన్ వివరాలు దీనిని లోకల్గా ఉంచుతాయి:
- డెవ్ మోడ్ Viteని ఉపయోగిస్తుంది మరియు డెమన్కు ప్రాక్సీ చేస్తుంది.
- ప్రొడక్షన్ బిల్డ్ చేసిన యాప్ను డెమన్ నుండి అందిస్తుంది.
- సేమ్ ఒరిజిన్ (Same origin) అనేది ఆథెంటికేషన్ మరియు రూటింగ్ ప్రక్రియను సరళంగా ఉంచుతుంది.
- బ్రౌజర్కు రిపో (repo) యొక్క డైరెక్ట్ రైట్ యాక్సెస్ అవసరం లేదు.
దీని వల్ల కలిగే ప్రయోజనం విజువల్ పాలిష్ కాదు. ప్రతి చర్య ఒకే బ్యాకెండ్ ద్వారా పరిష్కరించబడుతుంది (resolves) అనేది దీని అసలు ప్రయోజనం.
మీరు ప్యానెల్లో ఒక సెట్టింగ్ను ఎడిట్ చేస్తే, ప్యానెల్ ఆ మార్పును డెమన్కు పంపిస్తుంది. డెమన్ ప్రాజెక్ట్ స్టోర్ను అప్డేట్ చేస్తుంది. తదుపరి రెండర్ (render), CLI చదివే అదే సత్య మూలాన్ని (source of truth) చదువుతుంది. ఒక సిస్టమ్, అనేక సర్ఫేస్లు.
మీ ప్రాజెక్ట్కు ఎటువంటి నష్టం లేకుండా UI మాయమైపోవచ్చు. మీరు ట్యాబ్ను మూసివేయవచ్చు లేదా మెషీన్లను మార్చవచ్చు. స్టేట్ డెమన్ మరియు .apc/ ఫోల్డర్లో ఉంటుంది.
దీని మెంటల్ మోడల్ చాలా సరళమైనది:
- APC: ప్రాజెక్ట్ అంటే ఏమిటి.
- APX: ప్రాజెక్ట్ ఎలా నడుస్తుంది.
- వెబ్ అడ్మిన్: ఆ రన్టైమ్లోకి ఒక విండో.
ఈ సరిహద్దును (boundary) స్పష్టంగా ఉంచండి. స్టాక్ (stack) మార్చుకోదగినదిగా ఉంటుంది. బ్రౌజర్ ఐచ్ఛికంగా (optional) ఉంటుంది. డెమన్ అధికారికంగా (authoritative) ఉంటుంది. ప్రాజెక్ట్ పోర్టబుల్గా ఉంటుంది.
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