ããã³ããšã³ã忣ãã©ã³ã¶ã¯ã·ã§ã³ã®ãã¹ã¿ãŒãå埩åã®ãããã«ããµãŒãã¹ã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã®èª²é¡ã解決çããã¹ããã©ã¯ãã£ã¹ãåŠã³ãŸãããã
ããã³ããšã³ã忣ãã©ã³ã¶ã¯ã·ã§ã³ã³ãŒãã£ããŒã¿ãŒïŒãã«ããµãŒãã¹ã»ãã©ã³ã¶ã¯ã·ã§ã³ç®¡ç
ç¹ã«ãã€ã¯ããµãŒãã¹ãè€éãªããã³ããšã³ãã¢ãŒããã¯ãã£ã®åéã«ãããŠãè€æ°ã®ãµãŒãã¹ã«ãŸããããã©ã³ã¶ã¯ã·ã§ã³ã管çããããšã¯ãçŸä»£ã®ãœãããŠã§ã¢éçºã«ãããŠå€§ããªèª²é¡ã§ããæ¬çš¿ã§ã¯ãããã³ããšã³ã忣ãã©ã³ã¶ã¯ã·ã§ã³ã³ãŒãã£ããŒã·ã§ã³ã®è€éããæ¢æ±ããããŒã¿æŽåæ§ãšã·ã¹ãã ã®å埩åã確ä¿ããããã®ãœãªã¥ãŒã·ã§ã³ãšãã¹ããã©ã¯ãã£ã¹ã«çŠç¹ãåœãŠãŸãã
忣ãã©ã³ã¶ã¯ã·ã§ã³ã®èª²é¡
åŸæ¥ã®ããŒã¿ããŒã¹ãã©ã³ã¶ã¯ã·ã§ã³ã¯ãå€ãã®å ŽåãACIDïŒååæ§ãäžè²«æ§ãå颿§ãæç¶æ§ïŒãã©ã³ã¶ã¯ã·ã§ã³ãšåŒã°ããåäžã®ããŒã¿ããŒã¹å ã§ããŒã¿å€æŽã管çããããã®ä¿¡é Œæ§ã®é«ãæ¹æ³ãæäŸããŸãããããã忣ç°å¢ã§ã¯ããããã®ä¿èšŒãéæããããšãããè€éã«ãªããŸãããã®çç±ã¯æ¬¡ã®ãšããã§ãã
- ååæ§ïŒ ãã©ã³ã¶ã¯ã·ã§ã³ã®ãã¹ãŠã®éšåãæåãããããŸãã¯ã©ããæåããªãããšãä¿èšŒããããšã¯ãæäœãè€æ°ã®ãµãŒãã¹ã«åæ£ããŠããå Žåã«ã¯å°é£ã§ãã1ã€ã®ãµãŒãã¹ã§é害ãçºçãããšãã·ã¹ãã ãäžè²«æ§ã®ãªãç¶æ ã«ãªãå¯èœæ§ããããŸãã
- äžè²«æ§ïŒ ç°ãªããµãŒãã¹éã§ããŒã¿ã®æŽåæ§ãç¶æããã«ã¯ãæ éãªèª¿æŽãšããŒã¿åææŠç¥ãå¿ èŠã§ãã
- å颿§ïŒ ãã©ã³ã¶ã¯ã·ã§ã³ãè€æ°ã®ãµãŒãã¹ã«é¢äžããå Žåã䞊è¡ãã©ã³ã¶ã¯ã·ã§ã³ãäºãã«å¹²æžããã®ãé²ãããšã¯ããå°é£ã§ãã
- æç¶æ§ïŒ ã·ã¹ãã é害ãçºçããå Žåã§ããã³ãããããããã©ã³ã¶ã¯ã·ã§ã³ãæ°žç¶çã§ããããšãä¿èšŒããã«ã¯ãå ç¢ãªããŒã¿ã¬ããªã±ãŒã·ã§ã³ãšãªã«ããªã¡ã«ããºã ãå¿ èŠã§ãã
ãããã®èª²é¡ã¯ãé»ååååŒãã©ãããã©ãŒã ã§ã®æ³šæã®ããã«ã1åã®ãŠãŒã¶ãŒã€ã³ã¿ã©ã¯ã·ã§ã³ãè€æ°ã®ãµãŒãã¹ïŒæ¯æããµãŒãã¹ãåšåº«ãµãŒãã¹ãé éãµãŒãã¹ãªã©ïŒã§ã¢ã¯ã·ã§ã³ãããªã¬ãŒããå Žåã«çºçããŸãããããã®ãµãŒãã¹ã®ããããã倱æãããšããã©ã³ã¶ã¯ã·ã§ã³å šäœãåé¡ãšãªãããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãšããŒã¿æŽåæ§ã®åé¡ã«ã€ãªããå¯èœæ§ããããŸãã
忣ãã©ã³ã¶ã¯ã·ã§ã³ç®¡çã«ãããããã³ããšã³ãã®è²¬ä»»
ããã¯ãšã³ãã¯ãã©ã³ã¶ã¯ã·ã§ã³ç®¡çã®äž»èŠãªè²¬ä»»ãè² ãããšãå€ãã§ãããããã³ããšã³ãã¯ããããã®è€éãªã€ã³ã¿ã©ã¯ã·ã§ã³ã調æŽããã³ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ããäžã§éèŠãªåœ¹å²ãæãããŸããããã³ããšã³ãã¯éåžžãæ¬¡ã®ããšãè¡ããŸãã
- ãã©ã³ã¶ã¯ã·ã§ã³ã®éå§ïŒ ããã³ããšã³ãã¯ã忣ãã©ã³ã¶ã¯ã·ã§ã³ãæ§æããæäœã®ã·ãŒã±ã³ã¹ãããªã¬ãŒããããšããããããŸãã
- ãŠãŒã¶ãŒãã£ãŒãããã¯ã®æäŸïŒ ããã³ããšã³ãã¯ããã©ã³ã¶ã¯ã·ã§ã³ã®ç¶æ ã«é¢ãããªã¢ã«ã¿ã€ã ã®ãã£ãŒãããã¯ããŠãŒã¶ãŒã«æäŸãã責任ããããŸããããã«ã¯ãããŒãã£ã³ã°ã€ã³ãžã±ãŒã¿ãŒãæåã¡ãã»ãŒãžãããã³æ å ±ãšã©ãŒã¡ãã»ãŒãžã®è¡šç€ºãå«ãŸããŸãã
- ãšã©ãŒã¹ããŒãã®åŠçïŒ ããã³ããšã³ãã¯ããšã©ãŒãé©åã«åŠçãã倱æããæäœã®å詊è¡ããã©ã³ã¶ã¯ã·ã§ã³ã®ãã£ã³ã»ã«ãªã©ãé©åãªå埩ãªãã·ã§ã³ããŠãŒã¶ãŒã«æäŸããå¿ èŠããããŸãã
- APIã³ãŒã«ã®ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ïŒ ããã³ããšã³ãã¯ãéžæãããã©ã³ã¶ã¯ã·ã§ã³ç®¡çæŠç¥ã«åŸã£ãŠããã©ã³ã¶ã¯ã·ã§ã³ã«é¢äžããããŸããŸãªãã€ã¯ããµãŒãã¹ãžã®APIã³ãŒã«ãç¹å®ã®ã·ãŒã±ã³ã¹ã§è¡ãå¿ èŠããããŸãã
- ç¶æ ã®ç®¡çïŒ ããã³ããšã³ãã¯ãã©ã³ã¶ã¯ã·ã§ã³ã®ç¶æ ã远跡ããŸããããã¯ãå詊è¡ãããŒã«ããã¯ãããã³ãŠãŒã¶ãŒã€ã³ã¿ã©ã¯ã·ã§ã³ãåŠçããäžã§éèŠã§ãã
忣ãã©ã³ã¶ã¯ã·ã§ã³ç®¡çã®ããã®ã¢ãŒããã¯ãã£ãã¿ãŒã³
忣ãã©ã³ã¶ã¯ã·ã§ã³ã®èª²é¡ã«å¯ŸåŠããã¢ãŒããã¯ãã£ãã¿ãŒã³ãããã€ããããŸãã2ã€ã®äžè¬çãªã¢ãããŒãã¯ãSagaãã¿ãŒã³ãš2çžã³ãããïŒ2PCïŒãããã³ã«ã§ãããã ãã2PCãããã³ã«ã¯ããã®ããããã³ã°æ§ããã³ããã©ãŒãã³ã¹ã®ããã«ããã¯ã®å¯èœæ§ãããææ°ã®åæ£ã·ã¹ãã ã«ã¯äžè¬çã«æšå¥šãããŠããŸããã
Sagaãã¿ãŒã³
Sagaãã¿ãŒã³ã¯ãããŒã«ã«ãã©ã³ã¶ã¯ã·ã§ã³ã®ã·ãŒã±ã³ã¹ã§ããåãã©ã³ã¶ã¯ã·ã§ã³ã¯ãåäžãµãŒãã¹ã®ããŒã¿ãæŽæ°ããŸãããã©ã³ã¶ã¯ã·ã§ã³ã®1ã€ã倱æããå ŽåãSagaã¯è£åãã©ã³ã¶ã¯ã·ã§ã³ãå®è¡ããŠãå è¡ãã©ã³ã¶ã¯ã·ã§ã³ã«ãã£ãŠè¡ããã倿Žãå ã«æ»ããŸããSagaã¯ã次ã®2ã€ã®æ¹æ³ã§å®è£ ã§ããŸãã
- ã³ã¬ãªã°ã©ãã£ãŒããŒã¹ã®SagaïŒ ãã®ã¢ãããŒãã§ã¯ãåãµãŒãã¹ãä»ã®ãµãŒãã¹ããã®ã€ãã³ãããªãã¹ã³ããããã«å¿ããŠå¯Ÿå¿ããŸããäžå€®ã³ãŒãã£ããŒã¿ãŒã¯ãããŸããããµãŒãã¹ã¯çŽæ¥éä¿¡ããŸãããã®ã¢ãããŒãã¯é«ãèªåŸæ§ãæäŸããŸãããã·ã¹ãã ã®æé·ã«äŒŽã管çãšãããã°ãå°é£ã«ãªãå¯èœæ§ããããŸãã
- ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ããŒã¹ã®SagaïŒ ãã®ã¢ãããŒãã§ã¯ãäžå€®ãªãŒã±ã¹ãã¬ãŒã¿ãŒããã©ã³ã¶ã¯ã·ã§ã³ã®èª¿æŽãæ åœããŸãããªãŒã±ã¹ãã¬ãŒã¿ãŒã¯ãµãŒãã¹ã«ã³ãã³ããéä¿¡ãããã®çµæãåŠçããŸãããã®ã¢ãããŒãã¯ãããå€ãã®å¶åŸ¡ãæäŸããè€éãªãã©ã³ã¶ã¯ã·ã§ã³ãããç°¡åã«ç®¡çã§ããŸãã
äŸïŒãã©ã€ãã®äºçŽ ãã©ã€ãäºçŽãµãŒãã¹ãæ³åããŠãã ãããSagaã«ã¯ãæ¬¡ã®æé ãå«ãŸããå ŽåããããŸãïŒãªãŒã±ã¹ãã¬ãŒã·ã§ã³ããŒã¹ïŒïŒ
- ããã³ããšã³ãããã©ã³ã¶ã¯ã·ã§ã³ãéå§ããŸãã
- ãªãŒã±ã¹ãã¬ãŒã¿ãŒã¯ããã©ã€ãã®ç©ºåžç¶æ³ã確èªããããã«ã空åžç¶æ³ãµãŒãã¹ããåŒã³åºããŸãã
- ãªãŒã±ã¹ãã¬ãŒã¿ãŒã¯ããæ¯æããµãŒãã¹ããåŒã³åºããŠæ¯æããåŠçããŸãã
- ãªãŒã±ã¹ãã¬ãŒã¿ãŒã¯ããäºçŽãµãŒãã¹ããåŒã³åºããŠåº§åžãäºçŽããŸãã
- ãããã®æé ã®ããããã倱æããå ŽåããªãŒã±ã¹ãã¬ãŒã¿ãŒã¯ã倿ŽãããŒã«ããã¯ããããã«ãè£åãã©ã³ã¶ã¯ã·ã§ã³ïŒäŸïŒæ¯æãã®æãæ»ããäºçŽã®è§£é€ïŒãããªã¬ãŒããŸãã
é©åãªãã¿ãŒã³ã®éžæ
ã³ã¬ãªã°ã©ãã£ãŒããŒã¹ãšãªãŒã±ã¹ãã¬ãŒã·ã§ã³ããŒã¹ã®SagaããŸãã¯ãã®ä»ã®ã¢ãããŒãã®éžæã¯ã次ã®ãããªã·ã¹ãã ã®ç¹å®ã®èŠä»¶ã«ãã£ãŠç°ãªããŸãã
- ãã©ã³ã¶ã¯ã·ã§ã³ã®è€éãïŒ åçŽãªãã©ã³ã¶ã¯ã·ã§ã³ã®å Žåã¯ãã³ã¬ãªã°ã©ãã£ãŒã§ååã§ãã倿°ã®ãµãŒãã¹ãé¢äžããè€éãªãã©ã³ã¶ã¯ã·ã§ã³ã®å Žåã¯ããªãŒã±ã¹ãã¬ãŒã·ã§ã³ã®æ¹ãå¶åŸ¡ãåªããŠããŸãã
- ãµãŒãã¹ã®èªåŸæ§ïŒ ã³ã¬ãªã°ã©ãã£ãŒã¯ããµãŒãã¹ãçŽæ¥éä¿¡ããããããµãŒãã¹ã®èªåŸæ§ãé«ããŸãã
- ä¿å®æ§ãšãããã°ïŒ ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ã¯ããããã°ãç°¡çŽ åãããã©ã³ã¶ã¯ã·ã§ã³ãããŒãçè§£ããããããŸãã
- ã¹ã±ãŒã©ããªãã£ãšããã©ãŒãã³ã¹ïŒ åãã¿ãŒã³ã®ããã©ãŒãã³ã¹ãžã®åœ±é¿ãèæ ®ããŠãã ããããªãŒã±ã¹ãã¬ãŒã·ã§ã³ã¯ãåäžé害ç¹ãšæœåšçãªããã«ããã¯ãå°å ¥ããå¯èœæ§ããããŸãã
ããã³ããšã³ãã®å®è£ ïŒéèŠãªèæ ®äºé
忣ãã©ã³ã¶ã¯ã·ã§ã³ç®¡ççšã®å ç¢ãªããã³ããšã³ããå®è£ ããã«ã¯ãããã€ãã®èŠå ãæ éã«æ€èšããå¿ èŠããããŸãã
1. ãšã©ãŒåŠçãšå埩æ§
ã¹ãçæ§ïŒ æäœã¯ã¹ãçã§ããå¿ èŠããããŸããã€ãŸããè€æ°åå®è¡ããŠãã1åã®å®è¡ãšåãçµæãåŸãããŸããããã¯ãå詊è¡ãåŠçããããã«éèŠã§ããããšãã°ããæ¯æããµãŒãã¹ãããå詊è¡ãå¿ èŠãªå Žåã«é¡§å®¢ã«2å課éããªãããã«ããŸããäžæã®ãã©ã³ã¶ã¯ã·ã§ã³IDã䜿çšããŠãå詊è¡ã广çã«è¿œè·¡ããã³ç®¡çããŸãã
å詊è¡ã¡ã«ããºã ïŒ äžæçãªé害ãåŠçããããã«ãææ°çããã¯ãªãã䜿çšããå ç¢ãªå詊è¡ã¡ã«ããºã ãå®è£ ããŸãããµãŒãã¹ãšãšã©ãŒã®æ§è³ªã«åºã¥ããŠãå詊è¡ããªã·ãŒãèšå®ããŸãã
ãµãŒããããã¬ãŒã«ãŒïŒ ã«ã¹ã±ãŒãé害ãé²ãããã«ããµãŒããããã¬ãŒã«ãŒãã¿ãŒã³ãçµ±åããŸãããµãŒãã¹ãåžžã«å€±æããŠããå ŽåããµãŒããããã¬ãŒã«ãŒããéããããã以äžã®èŠæ±ã黿¢ãããµãŒãã¹ã®å埩ãå¯èœã«ããŸããããã³ããšã³ãã¯ããµãŒããããéããŠããããšãæ€åºããããã«å¿ããŠåŠçããå¿ èŠããããŸãïŒããšãã°ããŠãŒã¶ãŒãã¬ã³ããªãŒãªãšã©ãŒã¡ãã»ãŒãžã衚瀺ããããåŸã§ããäžåºŠããçŽãããã«ãŠãŒã¶ãŒã«æç€ºãããããŸãïŒã
ã¿ã€ã ã¢ãŠãïŒ ç¡æéã®åŸ æ©ãé¿ããããã«ãAPIã³ãŒã«ã«é©åãªã¿ã€ã ã¢ãŠããèšå®ããŸããããã¯ããããã¯ãŒã¯ã®åé¡ãäžè¬çãªåæ£ã·ã¹ãã ã§ã¯ç¹ã«éèŠã§ãã
è£åãã©ã³ã¶ã¯ã·ã§ã³ïŒ 倱æããæäœã®åœ±é¿ãå ã«æ»ãããã«ãè£åãã©ã³ã¶ã¯ã·ã§ã³ãå®è£ ããŸããããã³ããšã³ãã¯ããããã®è£åã¢ã¯ã·ã§ã³ãããªã¬ãŒããäžã§éèŠãªåœ¹å²ãæãããŸããããšãã°ãæ¯æããåŠçãããåŸã座åžäºçŽã倱æããå Žåã¯ãæ¯æããæãæ»ãå¿ èŠããããŸãã
2. ãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ïŒUXïŒ
ãªã¢ã«ã¿ã€ã ãã£ãŒãããã¯ïŒ ãã©ã³ã¶ã¯ã·ã§ã³ã®é²è¡ç¶æ³ã«é¢ãããªã¢ã«ã¿ã€ã ã®ãã£ãŒãããã¯ããŠãŒã¶ãŒã«æäŸããŸããããŒãã£ã³ã°ã€ã³ãžã±ãŒã¿ãŒãããã°ã¬ã¹ããŒãããã³æ å ±ã¹ããŒã¿ã¹ã¡ãã»ãŒãžã䜿çšããŠããŠãŒã¶ãŒã«æ å ±ãäŒãç¶ããŸãããã©ã³ã¶ã¯ã·ã§ã³ãå®äºãããŸã§ã空çœã®ç»é¢ã衚瀺ããããäœã衚瀺ããªãããã«ãããããªãã§ãã ããã
æç¢ºãªãšã©ãŒã¡ãã»ãŒãžïŒ åé¡ã説æãããŠãŒã¶ãŒã«è¡åå¯èœãªæç€ºãæäŸãããæç¢ºã§ç°¡æœãªãšã©ãŒã¡ãã»ãŒãžã衚瀺ããŸããå°éçšèªã¯é¿ããå¹³æãªèšèã§åé¡ã説æããŸãããŠãŒã¶ãŒã«å詊è¡ããã£ã³ã»ã«ããŸãã¯ãµããŒããžã®é£çµ¡ã®ãªãã·ã§ã³ãæ€èšããŠãã ããã
ãã©ã³ã¶ã¯ã·ã§ã³ç¶æ ã®ç®¡çïŒ ãã©ã³ã¶ã¯ã·ã§ã³ã®ç¶æ ãæç¢ºã«çè§£ããŠãããŠãã ãããããã¯ãå詊è¡ãããŒã«ããã¯ãããã³æ£ç¢ºãªãã£ãŒãããã¯ã®æäŸã«äžå¯æ¬ ã§ããã¹ããŒããã·ã³ãŸãã¯ãã®ä»ã®ç¶æ 管çæè¡ã䜿çšããŠããã©ã³ã¶ã¯ã·ã§ã³ã®é²è¡ç¶æ³ã远跡ããŸããããã³ããšã³ããçŸåšã®ç¶æ ãæ£ç¢ºã«åæ ããŠããããšã確èªããŸãã
ã°ããŒãã«ãªãŒãã£ãšã³ã¹åãã®UI/UXã®ãã¹ããã©ã¯ãã£ã¹ãæ€èšããïŒ ããã³ããšã³ããèšèšããéã¯ãæåã®éããšèšèªã®å£ã«æ³šæããŠãã ãããã€ã³ã¿ãŒãã§ãŒã¹ãããŒã«ã©ã€ãºããããã¹ãŠã®å°åã®ãŠãŒã¶ãŒãå©çšã§ããããã«ããŸããäžçäžã§çè§£ãããŠããã¢ã€ã³ã³ãšèŠèŠçãªæãããã䜿çšããŠããŠãŒã¶ããªãã£ãåäžãããŸããæŽæ°ã®ã¹ã±ãžã¥ãŒã«ãç· ãåãã®æäŸãè¡ãå Žåã¯ãã¿ã€ã ãŸãŒã³ã®éããèæ ®ããŠãã ããã
3. ããã³ããšã³ãã®ãã¯ãããžãŒãšããŒã«
ç¶æ 管çã©ã€ãã©ãªïŒ ç¶æ 管çã©ã€ãã©ãªïŒReduxãZustandãVuexãªã©ïŒã䜿çšããŠããã©ã³ã¶ã¯ã·ã§ã³ã®ç¶æ ã广çã«ç®¡çããŸããããã«ãããããã³ããšã³ãã®ãã¹ãŠã®éšåãçŸåšã®ç¶æ ã«ã¢ã¯ã»ã¹ã§ããããã«ãªããŸãã
APIãªãŒã±ã¹ãã¬ãŒã·ã§ã³ã©ã€ãã©ãªïŒ APIã³ãŒã«ãè€æ°ã®ãµãŒãã¹ã«å¯ŸããŠè¡ããããŒã¿ã®ãããŒã管çããããã»ã¹ãç°¡çŽ åããããã«ãAPIãªãŒã±ã¹ãã¬ãŒã·ã§ã³ã©ã€ãã©ãªãŸãã¯ãã¬ãŒã ã¯ãŒã¯ïŒApollo FederationãAWS AppSyncãªã©ïŒã®äœ¿çšãæ€èšããŠãã ããããããã®ããŒã«ã¯ãããã³ããšã³ããšããã¯ãšã³ããµãŒãã¹éã®çžäºäœçšãåçåããã®ã«åœ¹ç«ã¡ãŸãã
éåææäœïŒ éåææäœïŒPromiseãasync/awaitãªã©ïŒã䜿çšããŠããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ããããã¯ãããªãããã«ããŸããããã«ãããå¿çæ§ãé«ãããŠãŒã¶ãŒãã¬ã³ããªãŒãªãšã¯ã¹ããªãšã³ã¹ãä¿èšŒãããŸãã
ãã¹ããšç£èŠïŒ ããã³ããšã³ãã®ä¿¡é Œæ§ã確ä¿ããããã«ãåäœãã¹ããçµ±åãã¹ãããšã³ãããŒãšã³ããã¹ããªã©ã培åºçãªãã¹ããå®è£ ããŸããç£èŠããŒã«ã䜿çšããŠãããã³ããšã³ãã®ããã©ãŒãã³ã¹ã远跡ããæœåšçãªåé¡ãç¹å®ããŸãã
4. ããã¯ãšã³ãã®èæ ®äºé
ããã§ã¯ããã³ããšã³ãã«çŠç¹ãåœãŠãŠããŸãããããã¯ãšã³ãã®èšèšã¯ãããã³ããšã³ãã®ãã©ã³ã¶ã¯ã·ã§ã³ç®¡çã«å€§ããªåœ±é¿ãäžããŸããããã¯ãšã³ãã¯æ¬¡ã®ããšãè¡ãå¿ èŠããããŸãã
- äžè²«æ§ã®ããAPIãæäŸããïŒ APIã¯ãæç¢ºã«å®çŸ©ãããææžåãããäžè²«æ§ãããå¿ èŠããããŸãã
- ã¹ãçæ§ãå®è£ ããïŒ ãµãŒãã¹ã¯ãéè€ãããªã¯ãšã¹ããé©åã«åŠçããããã«èšèšããå¿ èŠããããŸãã
- ããŒã«ããã¯æ©èœãæäŸããïŒ ãµãŒãã¹ã¯ãè£åãã©ã³ã¶ã¯ã·ã§ã³ãå¿ èŠãªå Žåã«æäœãå ã«æ»ãæ©èœãåããŠããå¿ èŠããããŸãã
- æçµçãªæŽåæ§ãåãå ¥ããïŒ å€ãã®åæ£ã·ããªãªã§ã¯ãå³å¯ãªå³ææŽåæ§ãåžžã«å¯èœãªããã§ã¯ãããŸãããããŒã¿ãæçµçã«äžè²«æ§ããããããã«å¿ããŠããã³ããšã³ããèšèšããããã«ããŠãã ãããããŒã¿ç«¶åã®ãªã¹ã¯ãæžããããã«ã楜芳çããã¯ãªã©ã®ææ³ã®äœ¿çšãæ€èšããŠãã ããã
- ãã©ã³ã¶ã¯ã·ã§ã³ã³ãŒãã£ããŒã¿ãŒ/ãªãŒã±ã¹ãã¬ãŒã¿ãŒãå®è£ ããïŒ ããã³ããšã³ãããã©ã³ã¶ã¯ã·ã§ã³ããªãŒã±ã¹ãã¬ãŒã·ã§ã³ããŠããå Žåã¯ç¹ã«ãããã¯ãšã³ãã§ãã©ã³ã¶ã¯ã·ã§ã³ã³ãŒãã£ããŒã¿ãŒãæ¡çšããŸãã
å®çšçãªäŸïŒeã³ããŒã¹ã§ã®æ³šæã®é 眮
eã³ããŒã¹ãã©ãããã©ãŒã ã§æ³šæãé 眮ããå®çšçãªäŸãæ€èšããSagaãã¿ãŒã³ïŒãªãŒã±ã¹ãã¬ãŒã·ã§ã³ããŒã¹ïŒã䜿çšããããã³ããšã³ãã®çžäºäœçšãšãµãŒãã¹ã®èª¿æŽã瀺ããŸãã
- ãŠãŒã¶ãŒã¢ã¯ã·ã§ã³ïŒ ãŠãŒã¶ãŒã¯ã泚æã確å®ããã¿ã³ãã¯ãªãã¯ããŸãã
- ããã³ããšã³ãã®éå§ïŒ ããã³ããšã³ãã¯ããŠãŒã¶ãŒã®ã€ã³ã¿ã©ã¯ã·ã§ã³ã«å¿ããŠããªãŒã±ã¹ãã¬ãŒã¿ãŒãšããŠæ©èœãããµãŒãã¹ã®APIãšã³ããã€ã³ããåŒã³åºãããšã«ããããã©ã³ã¶ã¯ã·ã§ã³ãéå§ããŸãã
- ãªãŒã±ã¹ãã¬ãŒã¿ãŒã®ããžãã¯ïŒ ããã¯ãšã³ãã«ååšãããªãŒã±ã¹ãã¬ãŒã¿ãŒã¯ãäºåå®çŸ©ãããäžé£ã®ã¢ã¯ã·ã§ã³ã«åŸããŸãã
- æ¯æããµãŒãã¹ïŒ ãªãŒã±ã¹ãã¬ãŒã¿ãŒã¯ãæ¯æããµãŒãã¹ãåŒã³åºããŠãæ¯æããåŠçããŸãããªã¯ãšã¹ãã«ã¯ãã¯ã¬ãžããã«ãŒãæ å ±ãè«æ±å äœæãæ³šæåèšãªã©ãå«ãŸããå ŽåããããŸãã
- åšåº«ãµãŒãã¹ïŒ 次ã«ããªãŒã±ã¹ãã¬ãŒã¿ãŒã¯åšåº«ãµãŒãã¹ãåŒã³åºããŠã補åã®åšåº«ç¶æ³ã確èªããå©çšå¯èœãªæ°éãæžãããŸãããã®APIã³ãŒã«ã«ã¯ã泚æã«å«ãŸãã補åãšæ°éã®ãªã¹ããå«ãŸããå ŽåããããŸãã
- é éãµãŒãã¹ïŒ ãªãŒã±ã¹ãã¬ãŒã¿ãŒã¯ãé éãµãŒãã¹ãåŒã³åºããŠãé éã©ãã«ãäœæããé éãã¹ã±ãžã¥ãŒã«ããŸããããã«ã¯ãé éå äœæãé éãªãã·ã§ã³ã泚æã®è©³çްãå«ãŸããå ŽåããããŸãã
- 泚æãµãŒãã¹ïŒ æåŸã«ããªãŒã±ã¹ãã¬ãŒã¿ãŒã¯æ³šæãµãŒãã¹ãåŒã³åºããŠãããŒã¿ããŒã¹ã«æ³šæã¬ã³ãŒããäœæããæ³šæã顧客ã補åãããã³é éæ å ±ã«é¢é£ä»ããŸãã
- ãšã©ãŒåŠçãšè£åïŒ ãã®ã·ãŒã±ã³ã¹äžã«ãµãŒãã¹ã®ããããã倱æããå ŽåïŒ
- ãªãŒã±ã¹ãã¬ãŒã¿ãŒã¯ãé害ãç¹å®ããè£åãã©ã³ã¶ã¯ã·ã§ã³ãéå§ããŸãã
- åšåº«ãŸãã¯é éæäœã倱æããå Žåã¯ãæ¯æããæãæ»ãããã«æ¯æããµãŒãã¹ãåŒã³åºãããå ŽåããããŸãã
- æ¯æãã倱æããå Žåã¯ãåšåº«ãµãŒãã¹ãåŒã³åºãããŠåšåº«ãè£å ãããŸãã
- ããã³ããšã³ããã£ãŒãããã¯ïŒ ããã³ããšã³ãã¯ãåãµãŒãã¹ã³ãŒã«ã®ã¹ããŒã¿ã¹ã«é¢ãããªãŒã±ã¹ãã¬ãŒã¿ãŒããã®æŽæ°ãåä¿¡ããããã«å¿ããŠãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ãæŽæ°ããŸãã
- ãªã¯ãšã¹ããé²è¡äžã¯ãããŒãã£ã³ã°ã€ã³ãžã±ãŒã¿ãŒã衚瀺ãããŸãã
- ãµãŒãã¹ãæ£åžžã«å®äºããå Žåãããã³ããšã³ãã¯æåããæé ã瀺ããŸãã
- ãšã©ãŒãçºçããå Žåãããã³ããšã³ãã¯ãšã©ãŒã¡ãã»ãŒãžã衚瀺ãããŠãŒã¶ãŒã«å詊è¡ãŸãã¯æ³šæã®ãã£ã³ã»ã«ãªã©ã®ãªãã·ã§ã³ãæäŸããŸãã
- ãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ïŒ ãŠãŒã¶ãŒã¯ã泚æããã»ã¹å šäœãéããŠèŠèŠçãªãã£ãŒãããã¯ãåãåãããã©ã³ã¶ã¯ã·ã§ã³ã®é²è¡ç¶æ³ã«ã€ããŠéç¥ãããŸããå®äºãããšãæåã¡ãã»ãŒãžãšæ³šæç¢ºèªããã³é éã®è©³çްïŒäŸïŒã泚æã確èªããŸããããæ³šæã¯2ã3å¶æ¥æ¥ä»¥å ã«çºéãããŸãããïŒã衚瀺ãããŸãã
ãã®ã·ããªãªã§ã¯ãããã³ããšã³ãããã©ã³ã¶ã¯ã·ã§ã³ã®éå§è ã§ããããã¯ãšã³ãã«ååšããAPIãšå¯Ÿè©±ããããã¯ãšã³ãã¯ãå®çŸ©ãããSagaãã¿ãŒã³ã䜿çšããŠä»ã®ãã€ã¯ããµãŒãã¹ãšå¯Ÿè©±ããŸãã
ããã³ããšã³ã忣ãã©ã³ã¶ã¯ã·ã§ã³ç®¡çã®ãã¹ããã©ã¯ãã£ã¹
ããã³ããšã³ã忣ãã©ã³ã¶ã¯ã·ã§ã³ã³ãŒãã£ããŒã·ã§ã³ãèšèšããã³å®è£ ããéã«èæ ®ãã¹ããã¹ããã©ã¯ãã£ã¹ã次ã«ç€ºããŸãã
- é©åãªãã¿ãŒã³ãéžæããïŒ ãã©ã³ã¶ã¯ã·ã§ã³ã®è€éããšãåãµãŒãã¹ã«å¿ èŠãªèªåŸæ§ã®çšåºŠãæ éã«è©äŸ¡ããŸããããã«å¿ããŠãã³ã¬ãªã°ã©ãã£ãŒãŸãã¯ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ãéžæããŸãã
- ã¹ãçæ§ãåãå ¥ããïŒ éè€ãããªã¯ãšã¹ããé©åã«åŠçããããã«ãµãŒãã¹ãèšèšããŸãã
- å ç¢ãªå詊è¡ã¡ã«ããºã ãå®è£ ããïŒ å埩åã®ããã«ãææ°çããã¯ãªããšãµãŒããããã¬ãŒã«ãŒãå«ããŸãã
- ãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ïŒUXïŒãåªå ããïŒ ãŠãŒã¶ãŒã«æç¢ºã§æ å ±ã«åºã¥ãããã£ãŒãããã¯ãæäŸããŸãã
- ç¶æ 管çã䜿çšããïŒ é©åãªã©ã€ãã©ãªã䜿çšããŠããã©ã³ã¶ã¯ã·ã§ã³ã®ç¶æ ã广çã«ç®¡çããŸãã
- 培åºçã«ãã¹ãããïŒ å æ¬çãªåäœãã¹ããçµ±åãã¹ããããã³ãšã³ãããŒãšã³ããã¹ããå®è£ ããŸãã
- ç£èŠãšã¢ã©ãŒãïŒ æœåšçãªåé¡ãç©æ¥µçã«ç¹å®ããããã«ãå æ¬çãªç£èŠãšã¢ã©ãŒããèšå®ããŸãã
- ã»ãã¥ãªãã£ç¬¬äžïŒ ãã¹ãŠã®APIã³ãŒã«ãé©åãªèªèšŒããã³æ¿èªã¡ã«ããºã ã§ä¿è·ããŸããéä¿¡ãæå·åããã«ã¯ãTLS/SSLã䜿çšããŸããããã¯ãšã³ãããåä¿¡ãããã¹ãŠã®ããŒã¿ãæ€èšŒããã»ãã¥ãªãã£ã®è匱æ§ãé²ãããã«å ¥åããµãã¿ã€ãºããŸãã
- ããã¥ã¡ã³ãïŒ ã¡ã³ããã³ã¹ã容æã«ããå°æ¥ã®éçºã®ããã«ããã¹ãŠã®APIãšã³ããã€ã³ãããµãŒãã¹ã€ã³ã¿ã©ã¯ã·ã§ã³ãããã³ãã©ã³ã¶ã¯ã·ã§ã³ãããŒãææžåããŸãã
- æçµçãªæŽåæ§ãæ€èšããïŒ å³æã®æŽåæ§ãåžžã«å¯èœãšã¯éããªãããšãçè§£ããŠèšèšããŸãã
- ããŒã«ããã¯ãèšç»ããïŒ ãã©ã³ã¶ã¯ã·ã§ã³ã®æé ã倱æããå Žåã«ã倿Žãå ã«æ»ãããã«ãè£åãã©ã³ã¶ã¯ã·ã§ã³ãé 眮ãããŠããããšã確èªããŸãã
é«åºŠãªãããã¯
1. 忣ãã¬ãŒã¹
ãã©ã³ã¶ã¯ã·ã§ã³ãè€æ°ã®ãµãŒãã¹ã«ãŸãããããããããã°ãšãã©ãã«ã·ã¥ãŒãã£ã³ã°ã«ã¯åæ£ãã¬ãŒã¹ãäžå¯æ¬ ã«ãªããŸããJaegerãZipkinãªã©ã®ããŒã«ã䜿çšãããšããã©ã³ã¶ã¯ã·ã§ã³ã«é¢äžãããã¹ãŠã®ãµãŒãã¹ã«ããããªã¯ãšã¹ãã®æµãããã¬ãŒã¹ã§ãããããããã©ãŒãã³ã¹ã®ããã«ããã¯ãšãšã©ãŒãç¹å®ãããããªããŸããäžè²«æ§ã®ãããã¬ãŒã¹ããããŒãå®è£ ããŠããµãŒãã¹å¢çãè¶ããŠãã°ãšãªã¯ãšã¹ããé¢é£ä»ããŸãã
2. æçµçãªæŽåæ§ãšããŒã¿åæ
忣ã·ã¹ãã ã§ã¯ããã¹ãŠã®ãµãŒãã¹ã§åŒ·åãªæŽåæ§ãå®çŸããããšã¯ã³ã¹ããããããããã©ãŒãã³ã¹ã«åœ±é¿ãäžããããšããããããŸããéåæçã«ããŒã¿åæãåŠçããããã«ã·ã¹ãã ãèšèšããããšã§ãæçµçãªæŽåæ§ãåãå ¥ããŸããã€ãã³ãé§ååã¢ãŒããã¯ãã£ãšã¡ãã»ãŒãžãã¥ãŒïŒKafkaãRabbitMQãªã©ïŒã䜿çšããŠããµãŒãã¹éã§ããŒã¿ã®å€æŽãäŒæããŸãã忿޿°ãåŠçããããã«ã楜芳çããã¯ãªã©ã®ææ³ã®äœ¿çšãæ€èšããŠãã ããã
3. ã¹ãçæ§ããŒ
ã¹ãçæ§ãä¿èšŒããããã«ããµãŒãã¹ã¯åãã©ã³ã¶ã¯ã·ã§ã³ã®ã¹ãçæ§ããŒãçæããŠäœ¿çšããå¿ èŠããããŸãããããã®ããŒã¯ããªã¯ãšã¹ãã®éè€åŠçãé²ãããã«äœ¿çšãããŸããããã³ããšã³ãã¯ãäžæã®ã¹ãçæ§ããŒãçæããåãªã¯ãšã¹ããšãšãã«ããã¯ãšã³ãã«æž¡ãããšãã§ããŸããããã¯ãšã³ãã¯ãããŒã䜿çšããŠãè€æ°ã®åæ°åä¿¡ããå Žåã§ããåãªã¯ãšã¹ãã1åã ãåŠçãããããã«ããŸãã
4. ç£èŠãšã¢ã©ãŒã
忣ãã©ã³ã¶ã¯ã·ã§ã³ã®ããã©ãŒãã³ã¹ãšæ£åžžæ§ã远跡ããããã«ãå ç¢ãªç£èŠãšã¢ã©ãŒãã·ã¹ãã ã確ç«ããŸãã倱æãããã©ã³ã¶ã¯ã·ã§ã³ã®æ°ãã¬ã€ãã³ã·ãåãµãŒãã¹ã®æåçãªã©ã®äž»èŠãªã¡ããªãã¯ãç£èŠããŸããåé¡ãç°åžžã«ã€ããŠããŒã ã«éç¥ããããã«ãã¢ã©ãŒããèšå®ããŸããããã·ã¥ããŒãã䜿çšããŠããã©ã³ã¶ã¯ã·ã§ã³ãããŒãèŠèŠåããããã©ãŒãã³ã¹ã®ããã«ããã¯ãç¹å®ããŸãã
5. ããŒã¿ç§»è¡æŠç¥
ã¢ããªã·ãã¯ã¢ããªã±ãŒã·ã§ã³ãããã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£ã«ç§»è¡ããå Žåãç§»è¡ãã§ãŒãºäžã«åæ£ãã©ã³ã¶ã¯ã·ã§ã³ãåŠçããã«ã¯ç¹å¥ãªæ³šæãå¿ èŠã§ãã1ã€ã®ã¢ãããŒãã¯ããã¹ãã¬ã³ã¬ãŒãã£ã°ãã¿ãŒã³ãã䜿çšããããšã§ãããã®ãã¿ãŒã³ã§ã¯ãã¢ããªã¹ããŸã é 眮ãããŠããéã«ãæ°ãããµãŒãã¹ãåŸã ã«å°å ¥ãããŸããå¥ã®ææ³ã¯ãç§»è¡äžã«ã¢ããªã¹ãšæ°ãããã€ã¯ããµãŒãã¹éã®å€æŽã調æŽããããã«ã忣ãã©ã³ã¶ã¯ã·ã§ã³ã䜿çšããããšã§ããããŠã³ã¿ã€ã ãšããŒã¿ã®äžæŽåãæå°éã«æããããã«ãç§»è¡æŠç¥ãæ éã«èšèšããŸãã
çµè«
ããã³ããšã³ãã¢ãŒããã¯ãã£ã«ããã忣ãã©ã³ã¶ã¯ã·ã§ã³ã®ç®¡çã¯ãå ç¢ã§ã¹ã±ãŒã©ãã«ãªã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã®è€éã§ããäžå¯æ¬ ãªåŽé¢ã§ãã課é¡ãæ éã«æ€èšããSagaãã¿ãŒã³ãªã©ã®é©åãªã¢ãŒããã¯ãã£ãã¿ãŒã³ãæ¡çšãããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãåªå ãããšã©ãŒåŠçãå詊è¡ã¡ã«ããºã ãããã³ç£èŠã«é¢ãããã¹ããã©ã¯ãã£ã¹ãå®è£ ããããšã«ãããå Žæã«é¢ä¿ãªãããŠãŒã¶ãŒã«ä¿¡é Œæ§ãé«ãäžè²«æ§ã®ãããšã¯ã¹ããªãšã³ã¹ãæäŸããå埩åã®ããã·ã¹ãã ãäœæã§ããŸããç¶¿å¯ãªèšç»ãšå®è£ ã«ãããããã³ããšã³ã忣ãã©ã³ã¶ã¯ã·ã§ã³ã³ãŒãã£ããŒã·ã§ã³ã¯ãéçºè ãææ°ã®ã¢ããªã±ãŒã·ã§ã³ã«å¯Ÿããå¢å€§ããèŠæ±ã«åãããŠã¹ã±ãŒãªã³ã°ããã·ã¹ãã ãæ§ç¯ã§ããããã«ããŸãã