ð¡ å£ããããŒã¿ã3çš®é¡ã«åããã埩æ§èšèšãäžæ°ã«æ±ºãŸã£ã話
ããŒã«ã«ã«ããŒã¿ãæã€ã¢ããªãæžããŠãããšããã€ããå£ããããŒã¿ãèªã¿èŸŒãã§ããŸã£ããšããã©ããããããæ±ºããªããã°ãããŸããããã®èšäºã¯ããã®å€å®ãæåãå£ããŠããã / ããªãããã®çåœå€ã§æ±ãããšããŠè©°ãŸããç Žæã3çš®é¡ã«åè§£ããéç«¯ã«æ®ãã®èšèšãèã¥ãåŒã«æ±ºãŸã£ããšããèšé²ã§ããããŒã¿ããŒã¹ã®åèšèšããéç¥ã®åŒ·ããŸã§ãå€å®ã®ç²åºŠã²ãšã€ã§æ±ºãŸãç¯å²ã®åºããä»åã®äž»é¡ã§ãã
çè ã¯ãTruefulããšããéçºè åãã®OSSãã©ãŠã¶ãå人ã§äœã£ãŠããŸããTruefulã®äžå¿ã«ããWorkspaceã¯ãã¿ãã»ã»ãã·ã§ã³ã»ã»ãã¥ãªãã£èšå®ãã²ãšãŸãšãã«ããäœæ¥åäœã§ãå®äœã¯JSONã®ãããã§ã¹ãã§ãã#0007ã§Workspaceã®äœæã»åã¢ã¯ãã£ãåãããŒãèšèšããã®ã§ãä»åã¯ãã®æåã«çœ®ããå£ãããããã§ã¹ãã®æ±ãããè©°ããŸãã1ã
ãç Žæãã§ãã¯ããã²ãšãŸãšãã«èããŠãã
æåã«æžããåŠçã®èŠåºãã¯ãç Žæç¢ºèªãã®äžèªã§ãããè¿ãå€ã¯çåœå€ãå£ããŠãããäœããã®åŸ©æ§ã詊ã¿ãããšããã€ããã§ããã
ããã§æãæ¢ãŸããŸããããäœããã®åŸ©æ§ããæžããªãã®ã§ããæžãããšãããšãæ³å®ããŠããå£ãæ¹ã«ãã£ãŠæé ããŸã£ããéãããšã«æ°ã¥ããŸããJSONã®ããŒã¹ã«å€±æããã±ãŒã¹ãšãJSONã¯èªãããé ç®ãè¶³ããªãã±ãŒã¹ãšããããã§ã¹ããåç §ããŠãããã¡ã€ã«ãå®åšããªãã±ãŒã¹ããã®3ã€ã¯ãæ€ç¥ã®æ¹æ³ãã埩æ§ã§ãããã©ãããããŠãŒã¶ãŒã«äœãäŒããã¹ãããå¥ç©ã§ããã
æ€èšããåè£
ãå£ããWorkspaceãã©ãæ±ãããã«ã€ããŠã3ã€ã®æ¡ãæ¯ã¹ãŸããã
| åè£ | å€å® |
|---|---|
| ç Žæã®çš®é¡ããšã«æ€ç¥ãšå¯ŸåŠãåãã | æ¡çš |
| ç Žæãçåœå€ã§æ±ããå£ããŠãããäžåŸã«åŸ©å ã詊ã¿ã | åŽäž |
| å£ããŠãããéãããããŠãŒã¶ãŒã«äœãçŽããã | åŽäž |
ãç Žæ = çåœå€ããåŽäžããçç±
çåœå€ã«ãããšãåŒã³åºãåŽãäœãã§ããŸããã
ç Žæç¢ºèªãåŒã¶ã®ã¯ãèµ·åæã®ã¯ãªãŒã³ã¢ããåŠçãšãWorkspaceã®åã¢ã¯ãã£ãåãããŒã®2ç®æã§ããã©ã¡ãããå£ããŠããããšèšãããåŸã«ãèªåã§åŸ©å ã詊ã¿ãã®ã / ãŠãŒã¶ãŒã«ç¥ãããã®ã / é»ã£ãŠé£ã°ãã®ã ãæ±ºããå¿ èŠããããŸããçåœå€ããè¿ã£ãŠããªããšããã®å€æææãåŒã³åºãåŽã«å±ããŸããã
çµæãšããŠã倿ããžãã¯ãç Žæç¢ºèªã®å åŽã«æŒã蟌ãããšã«ãªããŸãããããšè»¢æã®èµ·ãã #0007 ãšåãåé¡ââ1ã€ã®åŠçããäœãããåŠçãããäžæã§èª¬æã§ããªããªãââãåçºããŸãã
æçµçã«ãç Žæç¢ºèªã¯è©²åœãããã¿ãŒã³ãã®ãã®ãè¿ãèšèšã«ããŸããã倿ã¯åŒã³åºãåŽã®è²¬ä»»ãšããŠæ®ããŸãã
ãå£ããŠãããäœãçŽãããããåŽäžããçç±
å®è£ ã¯ãã¡ã°ãç°¡åã§ããå£ãããã®ã¯éãããªãã以äžã
ãã ãTruefulã®ææ³ç·šïŒ#0001ïŒã§ã¯Layer 2ã®ååãšã㊠Failure Friendlyââ倱æãåæã«ã埩æ§ããããèšèšã«ããŠããââãæ²ããŠããŸããæžã蟌ã¿äžã«ã¯ã©ãã·ã¥ããã ãã®WorkspaceããäœãçŽãã§ããæããªãèšèšã«ããã®ã¯ããã®ååã«çæ£é¢ããåããŸãã
忀èšããæ¡ä»¶ã¯ãããŸããåŸ©æ§æ©æ§ã®å®è£ ã»ä¿å®ã³ã¹ãããWorkspaceãäœãçŽãã³ã¹ããæããã«äžåããããªãããã®æ¡ã«æ»ãäœå°ã¯ãããŸãããã çŸæç¹ã§ãWorkspaceã¯ã¿ãæ§æã»ã»ãã·ã§ã³ã»ã»ãã¥ãªãã£èšå®ãå«ããäœæ¥ç°å¢ãã®ãã®ããªã®ã§ãäœãçŽãã®ã³ã¹ãã¯ããªãé«ããä»åã¯åŽäžããŸããã
3ãã¿ãŒã³ã«åè§£ããŠã察åŠãåãã
æ¡çšæ¡ã®äžèº«ã§ãã
| # | ç Žæã®å 容 | å žåçãªåå | ã¢ããªåŽã§åŸ©å ã§ããã |
|---|---|---|---|
| â | ãããã§ã¹ãJSONèªäœãå£ããŠãã | æžã蟌ã¿äžã®ã¯ã©ãã·ã¥ | â ããã¯ã¢ãããã埩å å¯èœ |
| â¡ | JSONã¯èªãããå¿ é é ç®ãæ¬ ããŠãã | äœæãããŒãéäžã§äžæ | â³ äœæãããŒã®ç¶ããžèªå° |
| ⢠| åç §å ãã¡ã€ã«ãå®åšããªã | ãŠãŒã¶ãŒãæåã§åé€ããç | â ã¢ããªã®å€ã§èµ·ããããš |
åè§£ããŠåããŠèŠããã®ã¯ãâ ãšâ¢ã®ããã ã«ã¢ããªã®æš©éå¢çãèµ°ã£ãŠããããšã§ãããâ ã¯ã¢ããªãèªåã§æžã蟌ãã ããŒã¿ã®äžæŽåãªã®ã§ãèªåã§çŽããŸããâ¢ã¯ãã¡ã€ã«ã·ã¹ãã äžã§ã¢ããªã®ç¥ããªããã¡ã«èµ·ããå€åãªã®ã§ãã¢ããªåŽã«ã§ããããšã¯åççã«ãããŸãããåããå£ããŠãããã§ããè²¬ä»»ã®æåšãéããŸãã
ãã®3ã€ã«åœãŠã¯ãŸããªãã±ãŒã¹ãšããŠãWorkspace IDèªäœãç ŽæããŠãããå Žåãæ€èšããŸããããã®å Žåãã©ã®ããã¯ã¢ãããšçŽä»ããã¹ãããšãã察å¿é¢ä¿ãã®ãã®ãæç«ããªãã®ã§ã3ãã¿ãŒã³ã«ã¯å«ãããèå¥äžèœã»åŸ©æ§äžå¯ããšããŠå¥æ±ãã«ããŠããŸãã
ããã¯ã¢ããèªäœãå£ããå¯èœæ§
ãâ ã¯ããã¯ã¢ãããã埩å ããããšæ±ºãããšããã§ãåœç¶ã®çåãåºãŸãããããã¯ã¢ããèªäœãå£ããŠãããïŒ
ããã¯å®éãã®éãã§ãããã¯ã¢ãããçµå±ã¯ãæžã蟌ã¿ãã§ãã以äžãâ ãšãŸã£ããåãç Žæãªã¹ã¯ãæ±ããŸããããã¯ã¢ããã眮ããã ãã§ã¯ãå£ããå Žæã1ã€å¢ããã ãã§ãã
ããã§ãããã¯ã¢ãããä¿åãããšãã« SHA256 ã®ãã§ãã¯ãµã ïŒããŒã¿ã®æçŽã®ãããªãã®ïŒãäžç·ã«èšé²ããåŸ©å æã«ããã¯ã¢ããèªäœã®æ£ãããæ€èšŒã§ããããã«ããŸãããããã¯ã¢ããã®æŽæ°ã¯ãããã§ã¹ãã倿Žããããã³ã«æ¯åè¡ããŸããããã¯ã¢ãããææ°ãåæ ããŠããªããšããããšãããšãã«å€ãç¶æ ãžå·»ãæ»ã£ãŠããŸãããã§ãã
ããã¯ã¢ãããå¥ããŒãã«ã«åããçç±
ä¿åå ãæ€èšããŸããã
| åè£ | å€å® |
|---|---|
workspace ãšã¯å¥ããŒãã«ã«ä¿å |
æ¡çš |
workspace ããŒãã«ã«åã远å |
åŽäž |
ãããã§ã¹ãJSONã¯ã¿ãæ§æãå«ããããµã€ãºã倧ãããªããã¡ã§ããWorkspaceã®äžèŠ§è¡šç€ºã®ããã«é »ç¹ã«èµ°ãã¯ãšãªãèªãããŒãã«ã«æ··ãããšãæ®æ®µã®åäœãŸã§ãã®éããåŒããããŸããããã¯ã¢ããã¯ããã£ãã«èªãŸãªããå¿ ãå¿ èŠããªããŒã¿ãªã®ã§ãã¢ã¯ã»ã¹é »åºŠãéããã®ã¯ç©ççã«åããããšãã倿ã§ãã
ãç¬ç«ãããããšãåŒã³å¿ããé²ããã¯äž¡ç«ã§ãã
èšèšäžãããããæ©ã¿ã«çªãåœãããŸãããããã¯ã¢ããåŠçã¯ç¬ç«ããéšåã«ããããã§ãç¬ç«ããããšããããã§ã¹ããä¿åããåŽãåŒã³å¿ããäœå°ãçãŸããã
ãã°ããäºæã ãšæã£ãŠããã®ã§ããã察ç«ããŠããŸããã§ããã
- ããã¯ã¢ããåŠçã¯ç¬ç«ããéšåãšããŠäœãïŒåäœã§ãåŒã¹ãïŒ
- ãããã§ã¹ãä¿ååŠçã®å éšãããã®éšåãåŒã¶ïŒä¿åãšããã¯ã¢ãããèªåçã«ã»ããã«ãªãïŒ
å€ããèŠãã°ãä¿åããã°å¿
ãããã¯ã¢ãããããããäžãèŠãã°ãããã¯ã¢ããã¯ç¬ç«ããéšåãã#0007ã§ services / flows ã«åãããšããšåããã¿ãŒã³ããå¥ã®å Žé¢ã§ãã®ãŸãŸå¹ããŸãããèšèšãã¿ãŒã³ã2åç®ã«åºãŠãããšã1åç®ããéãæ°ã¥ããŸãã
SQLiteã®åèšèšïŒ1åã«ãŸãšããããçœ
Workspaceã®ç¶æ ãæ°žç¶åããåãããã®æ©äŒã«ç¢ºå®ãããŸãããåœåã¯ãæçµã¢ã¯ã»ã¹æå»ãã1åã§è¡šãã€ããã§ãããããããçœ ã§ããã
- LRUå€å®ã«äœ¿ããæåŸã«éããæå»ã
- Archiveå€å®ã«äœ¿ããéã¢ã¯ãã£ãã«ãªã£ãæå»ã
ãã®2ã€ã¯æå³ãéããŸãããéããŠããéãããå Žåãšãéãã£ã±ãªãã§é·ã䜿ã£ããå Žåã§ãäž¡è ã¯å€§ãããºã¬ãŸãã1åã«ãŸãšããŠããããã©ã¡ããã®å€å®ãéãã«äžæ£ç¢ºã«ãªã£ãŠããŸããã
æçµçãªåèšèšã§ãã
| åå | å | ããã©ã«ãå€ | åœ¹å² |
|---|---|---|---|
status |
TEXTïŒactive / dormantïŒ |
active |
Workspaceã®çŸåšã®ç¶æ |
last_used_time_ms |
INTEGER | äœææå» | æåŸã«éããæå»ãLRUå€å®ã«äœ¿çš |
dormanted_time_ms |
INTEGERïŒNULLèš±å®¹ïŒ | NULL |
éã¢ã¯ãã£ãã«ãªã£ãæå»ãArchiveå€å®ã«äœ¿çš |
dormanted_time_ms ã®ããã©ã«ãã NULL ã«ããã®ããã€ã³ãã§ããããŸã äžåºŠãDormantã«ãªã£ãŠããªããã 0 ã§è¡šããšãã1970幎1æ1æ¥ã«Dormantã«ãªã£ãããšããåã®ããŒã¿ã«ãªããŸããååšããªãããšã¯ NULL ã§æ£çŽã«è¡šçŸãããåºæ¬ã§ãããçµéæ¥æ°ãèšç®ããåŽã®å®è£
ãèããŠåããŠå®æã䌎ããŸããã
ååã¯SQLã®æ £ç¿ã«åŸã£ãŠã¹ããŒã¯ã±ãŒã¹ã«ããŠããŸããRendererå±€ã§äœ¿ããã£ã¡ã«ã±ãŒã¹ãšã®å€æå¢çãããã®æ®µéã§æèçã«åããŸããã
Archiveç¶æ ãããŒã¿ããŒã¹ã«æããªããšæ±ºãã
status ã« archived ãç¡ãããšã«æ°ã¥ããæ¹ããããããããŸããããããåœåæ¡ããå€ããéšåã§ãã
æåã¯ãArchiveã¯Dormantãšã¯å¥ã®ç¶æ ããšããŠèšèšããã€ããã§ããããšãããå éšåŠçãæžãåºããŠã¿ããšãDormantãšãŸã£ããåããªã®ã§ããéãã®ã¯è¡šç€ºã ãã
ãããŸã§æ¥ããšãDBã®ç¶æ
åã« archived ãšããå€ãæãããå¿
èŠãããªããšããçµè«ã«ãªããŸãããdormantã«ãªã£ãŠããã®çµéæ¥æ°ãã衚瀺ã®ãã³ã«èšç®ããã°æžãã®ã§ããç¶æ
ãæžãæããåŠçãèªäœãäžèŠã«ãªããæžãæãåŠçãååšããªããªããæžãæãå¿ããã¿ã€ãã³ã°ã®ãºã¬ãšãããã°ã®äœå°ããæåããååšããŸãããæ¢åã®LRUãåã¢ã¯ãã£ãåãããŒããDormant / Archive ãåºå¥ãããã®ãŸãŸäœ¿ãåããŸãã
å€å®ã®å¢çãšãªãæ¥æ°ã¯ããŒãã³ãŒãããã宿°ãšããŠäžå 管çããæ¹éã«ããŸãããå°æ¥ãã®å€ã調æŽããããªã£ããšãã«ãè€æ°ç®æãæ¢ãåããã«æžãããã«ããããã§ãã
éç¥ã®åŒ·ãã¯ãæ·±å»åºŠãã§ã¯ãªããåããè¡åãã§æ±ºãã
æåŸã«ã3ãã¿ãŒã³ããŠãŒã¶ãŒã«ã©ãäŒãããã§ãã
| ãã¿ãŒã³ | éç¥ã®åŒ·ã | çç± |
|---|---|---|
| â ïŒèªååŸ©å æžã¿ïŒ | ããŒã¹ãéç¥ã®ã¿ | ãŠãŒã¶ãŒã®å¯Ÿå¿ãäžèŠ |
| â¡ïŒæªå®æïŒ | äœæãããŒã®ç¶ããžèªå°ããããã | ãç¶ããããã°çŽãããšããååããªè¡åã«ã€ãªãã |
| â¢ïŒåŸ©æ§äžå¯ïŒ | 確èªãã€ã¢ãã° | ã¢ããªåŽã§è§£æ±ºã§ããããŠãŒã¶ãŒã®å€æãå¿ é |
æ·±å»ãã®é ã«åŒ·ãããã®ã§ã¯ãããŸããããŠãŒã¶ãŒããããèŠãŠäœãã§ãããã§åŒ·ããæ±ºããŠããŸããâ¡ã¯æ·±å»ãã§èšãã°â¢ãã軜ãã§ãããè¡åã«ã€ãªããã¶ããããŒã¹ãããäžæ®µåŒ·ã衚瀺ã«å€ããŸããéã«â ã¯ãå éšã§èµ·ããããšã¯æ·±å»ã§ãããŠãŒã¶ãŒã«ã§ããããšãç¡ãã®ã§ããŒã¹ãã§è¶³ããŸãã
ãã®åºæºã #0002 ã®Design Systemã§æŽçãããå²ã蟌ã¿ã³ã¹ãã®ã¯ãããã®å¿çšã§ãã
åæ€èšæ¡ä»¶ãšããŸã 決ãŸã£ãŠããªãããš
ADRãæžãçµããæç¹ã§ããæå³çã«æ®ããè«ç¹ããããŸãã
- ããã¯ã¢ããã®äžä»£ç®¡çæ¹éïŒææ°1ä»¶ã®ã¿ä¿æ / è€æ°äžä»£ä¿æïŒ
- ãã§ãã¯ãµã æ€èšŒã®ã¿ã€ãã³ã°ïŒåŸ©å åã«æ€èšŒãããã埩å åŸã«æ€èšŒãããïŒ
- ç Žæç¢ºèªãšãèµ·åæã¯ãªãŒã³ã¢ããã»åã¢ã¯ãã£ãåãããŒãšã®å ·äœçãªçµã¿èŸŒã¿é åº
å ããŠãä»åã®æ±ºå®ãå°æ¥èŠçŽãæ¡ä»¶ãæžãæ®ããŸãããArchiveå€å®ãéœåºŠèšç®ã«ãã以äžãWorkspaceæ°ãå¢ãããšãã®èšç®ã³ã¹ããåé¡ã«ãªããªãããã£ãã·ã¥ãåã®åå°å ¥ãæ€èšããããŸãèµ·åæã¯ãªãŒã³ã¢ããã¯ãå€å®æ¡ä»¶ãæããªããæ¯åç¡æ¡ä»¶ã§å®è¡ããéžã³ãŸãããç°åžžçµäºãã©ãããå€å®ããæ¹åŒã¯èµ·åãéããªããŸãããå€å®ãééãããšæ¬æ¥åãã¹ããšãã«åããªããªã¹ã¯ããããŸããå®è£ åæã®ä»ã¯ã·ã³ãã«ãªæ¹ãåãããšãã倿ã§ãããã ããããéžãã 以äžããæ¯åå®è¡ããŠãèµ·åäœéšãæãªããªã軜ããä¿ã€ããšããå¶çŽãåæã«èè² ããŸããã
1ã€ã®ADRã§å šéšã決ãããããšãããæ±ºãŸã£ããšãããŸã§ã確å®ãããŠæ¬¡ã«éãããããLayer 0ã® Time First ã®å®è·µã ãšæããŠããŸãã
ç·æ¬
ãã®æ¥ãã¡ã°ãå¹ããã®ã¯ãSHA256ã§ãããŒãã«åå²ã§ããªãããç Žæããšããäžèªã3ã€ã«å²ã£ãããšã§ããã
å€å®ã®ç²åºŠãäžããã ãã§ãè¿ãå€ã®åãæ±ºãŸããåŒã³åºãåŽã®è²¬åãæ±ºãŸããéç¥ã®åŒ·ãã®åºæºã決ãŸããã©ããŸã§ãã¢ããªã®è²¬ä»»ç¯å²ãã®ç·ãåŒããŸãããéã«èšãã°ãçåœå€ã®ãŸãŸé²ãã§ãããããããã¯å šéšãå®è£ ããªããèãããã«å éããããŠããã¯ãã§ãã
æœè±¡åºŠã®é«ãèšèã§ã²ãšãŸãšãã«ããŠããéãããã®äžã«ãã倿ã¯èŠããŸãããèšèšãé²ãŸãªããšæãããšãã¯ããããŠãèšèã1段现ãããããšé²ãââä»åã®1æ¥ã§åŸãã®ã¯ããã®äžç¹ã§ãã
次å
#0009ã§ã¯ãããã§æ®ãã宿é¡ïŒããã¯ã¢ããã®äžä»£ç®¡çããã§ãã¯ãµã æ€èšŒã®ã¿ã€ãã³ã°ïŒãè©°ããããã§ãservices/ flows/ é
äžãžã®å®è£
ã«çæããŸããçæé ã¯LRUãäœæãããŒããã§ã¯ãªããç Žææ€ç¥ããžãã¯ããã®äºå®ã§ããä»ã®ãã¹ãŠã®åŠçããã®å€å®çµæã«äŸåãããäŸåé¢ä¿ã®èµ·ç¹ã ããã§ãã
GitHub
ä»åã®æ±ºå®ã®è©³çްïŒADR-012ãããŒã¿ã¹ããŒãïŒã¯ãã¡ãã
Workspaceã®ã©ã€ããµã€ã¯ã«ãšç¶æ é·ç§»ã®ä»æ§ã¯ MVPã¹ã³ãŒã ã«ãããŸãã
AIã®å©çšã«ã€ããŠ
ãã®èšäºã¯ãClaudeã«äžæ¬¡çš¿ãäœæããŠããããå 容ã確èªã»ä¿®æ£ãããã®ã§ããèšèšå€æãã®ãã®ã¯èªåã§è¡ã£ãŠãããäžèšã®åŽäžçç±ããã¬ãŒããªããClaudeçžæã®å£æã¡ã®äžã§èªåãè©°ãããã®ã§ããClaudeã®äœ¿ãæ¹ã«ã€ããŠã¯çªå€ç·š1ã«è©³ããæžããŠããŸãã
-
ãã®æ¥ã¯ååã«ãGitHubã®Web UIããçŽæ¥ã³ãããããŠããã¶ããšããŒã«ã«ã®æªã³ããã倿Žãé£ãéã£ãŠ
divergent branchesãåºãããšããGitæŽçããã£ãŠããŸããmergeéçšã«æ±ºããŠãªããžããªåäœã§èšå®ããã ããªã®ã§ãæ¬èšäºã§ã¯å²æããŸãã â©