Webhookããã³ã€ãã³ãé§åã·ã¹ãã ã®éçºã確å®ãªé ä¿¡ãé©åãªé åºä»ããå æ¬çãªç£èŠãåããä¿¡é Œæ§ã®é«ãã€ãã³ãåŠçã·ã¹ãã ãæ§ç¯ããŸãã
å§ãã
ã€ãã³ãé§åã¢ãŒããã¯ãã£ã¯ãã·ã¹ãã ãççµåã«ããã¹ã±ãŒã©ããªãã£ãåäžãããããžãã¹ã€ãã³ããžã®ãªã¢ã«ã¿ã€ã ãªåå¿ãå¯èœã«ããŸãããããããããã¯é åºä»ããåªçæ§ãDead Letterãå¯èŠ³æž¬æ§ã®èª²é¡ãšãã£ãè€éãããããããŸããç§ãã¡ã¯ãä¿¡é Œæ§ãå¯èŠ³æž¬æ§ãä¿å®æ§ã«åªããã€ãã³ãã·ã¹ãã ãæ§ç¯ããæ°çŸäžä»¶ã®ã€ãã³ãã確å®ãªåŠçã§æ±ããŸãã
ç§ãã¡ã¯ãã€ãã³ããã¹ã«ã¯Apache KafkaãRabbitMQããŸãã¯Redis Streamsãããžã§ããã¥ãŒã«ã¯BullMQããé 信远跡ã«ã¯PostgreSQLã䜿çšããã«ã¹ã¿ã Webhookã€ã³ãã©ã¹ãã©ã¯ãã£ãæ§ç¯ããŸããã€ãã³ãã¹ããŒãã¯JSON SchemaãŸãã¯Avroã§ç®¡çãããŸãããã¹ãŠã®ã·ã¹ãã ã«ã¯ãGrafanaã«ããå æ¬çãªç£èŠãå«ãŸããŠããŸãã
å€éšãµãŒãã¹ããã®ã€ãã³ãïŒwebhooksïŒã«åå¿ããå¿ èŠãããã¢ããªã±ãŒã·ã§ã³ãå éšã·ã¹ãã éã®éä¿¡ãççµåã«ããå¿ èŠãããã¢ããªã±ãŒã·ã§ã³ããŸãã¯ãªã¢ã«ã¿ã€ã éç¥ã·ã¹ãã ãæ§ç¯ããå¿ èŠãããã¢ããªã±ãŒã·ã§ã³åãã§ããä¿¡é Œæ§ã®é«ãWebhookåŠçãå¿ èŠãªå Žåã§ããå®å šãªã€ãã³ãé§åã¢ãŒããã¯ãã£ãå¿ èŠãªå Žåã§ããç§ãã¡ã¯å€§èŠæš¡ãªã€ãã³ããåŠçã§ããã·ã¹ãã ãæäŸããŸãã
ããžãã¹ã€ãã³ãããããã³ã°ããã¹ããŒããå®çŸ©ãããããã¥ãŒãµãŒãšã³ã³ã·ã¥ãŒããŒãç¹å®ããé åºä»ãèŠä»¶ãèšç»ããŸãã
ã€ãã³ããã¹ããããžãé ä¿¡ä¿èšŒãã³ã³ã·ã¥ãŒããŒãã¿ãŒã³ãç£èŠæŠç¥ãèšèšããŸãã
ã€ãã³ããããã¥ãŒãµãŒãã³ã³ã·ã¥ãŒããŒãWebhookã€ã³ãã©ã¹ãã©ã¯ãã£ãããã³Dead LetteråŠçãæ§ç¯ããŸãã
é ä¿¡ä¿èšŒãåªçæ§ãé åºä»ããé害ã·ããªãªãããã³å埩åäœããã¹ãããŸãã
ã€ãã³ãç£èŠããã·ã¥ããŒãããããã€ããã¢ã©ãŒããèšå®ããéçšæé ãææžåããŸãã
ã·ã¹ãã ãççµåã«ããå€§èŠæš¡ãªã€ãã³ãã確å®ã«åŠçããã€ãã³ãã¢ãŒããã¯ãã£ãèšèšããŸãããã
Webhooks ã¯ããµãŒãã¹ééç¥ã®ããã® HTTP callbacks ã§ããäžæ¹ãevent-driven architecture ã¯ãéåæã§ççµåãªéä¿¡ã®ããã« Kafka ã RabbitMQ ã®ãã㪠message brokers ã䜿çšããŸããMicrocosmWorks ã¯ãã客æ§ã®ä¿¡é Œæ§ãšã¹ã±ãŒã©ããªãã£ã®ããŒãºã«å¿ããŠãäž¡æ¹ã®ãã¿ãŒã³ãå®è£ ããŠããŸãã
MicrocosmWorksã«ãããã€ãã³ãé§åã·ã¹ãã èšèšããã³éçºã¯ãã¢ãŒããã¯ãã£èšèšãã¡ãã»ãŒãžãããŒã«ãŒã®ã»ããã¢ãããã€ãã³ãã¹ããŒãèšèšãããã³ã³ã³ã·ã¥ãŒããŒã®å®è£ ãå«ãã1æéããã25ãã«ãã50ãã«ã§æäŸããŠããŸãã
åªçãªãŠã§ãããã¯ãã³ãã©ãææ°ããã¯ãªãã䌎ãèªåå詊è¡ãé 信倱ææã®ãããã¬ã¿ãŒãã¥ãŒãã»ãã¥ãªãã£ã®ããã®çœ²åæ€èšŒããããŠæåãªãã¬ã€æ©èœãåããé ä¿¡ç¶æ³è¿œè·¡ãå°å ¥ããŠããŸãã
ã¯ããåœç€Ÿã¯ã€ãã³ãã¹ãã¢ããããžã§ã¯ã·ã§ã³ãã«ããŒãããã³CQRSãã¿ãŒã³ãåããã€ãã³ããœãŒã·ã³ã°ã¢ãŒããã¯ãã£ãèšèšããããã«ããå®å šãªç£æ»èšŒè·¡ããã³ãã©ã«ã¯ãšãªãããã³ä»»æã®æç¹ããã®ç¶æ ãåæ§ç¯ããæ©èœããæäŸããŸãã
ç§ãã¡ã¯ãåŸæ¹äºææ§ããã³åæ¹äºææ§ã®ãã§ãã¯æ©èœãåããã¹ããŒãã¬ãžã¹ããªãå°å ¥ããã€ãã³ãã«ã¯æç€ºçã«ããŒãžã§ã³ãä»äžããŠããŸãããŸããå€ãã€ãã³ãã«ã¯ã¢ãããã£ã¹ãã£ã³ã°ãé©çšãããããã€ã¡ã³ãäžã«ç Žå£ç倿Žãçºçããã®ãé²ããããæªç¥ã®ãã£ãŒã«ããé©åã«åŠçããããã«ã³ã³ã·ã¥ãŒããèšèšããŠããŸãã