ã€ãã³ããœãŒã·ã³ã°ã¢ãŒããã¯ãã£ã®å©ç¹ã課é¡ããã¡ã€ã³ã€ãã³ãã¹ãã¬ãŒãžã·ã¹ãã ã®è©³çŽ°ãæ¢ããŸãã倿§ãªã¹ãã¬ãŒãžãªãã·ã§ã³ãããã©ãŒãã³ã¹ã®èæ ®äºé ãå®äžçã§ã®å®è£ ã«ã€ããŠåŠã³ãŸãããã
ã€ãã³ããœãŒã·ã³ã°ã¢ãŒããã¯ãã£ïŒãã¡ã€ã³ã€ãã³ãã¹ãã¬ãŒãžã·ã¹ãã ã®åŸ¹åºè§£èª¬
ã€ãã³ããœãŒã·ã³ã°ã¯ãã¢ããªã±ãŒã·ã§ã³ã®ç¶æ ãã€ãã³ãã®ã·ãŒã±ã³ã¹ã«ãã£ãŠæ±ºå®ãããã¢ãŒããã¯ãã£ãã¿ãŒã³ã§ãããšã³ãã£ãã£ã®çŸåšã®ç¶æ ãä¿åããã®ã§ã¯ãªãããã®ãšã³ãã£ãã£ãžã®å€æŽã衚ãäžé£ã®äžå€ã®ã€ãã³ããæ°žç¶åããŸãããã®ããã°æçš¿ã§ã¯ãç¹ã«ãã¡ã€ã³ã€ãã³ãã¹ãã¬ãŒãžã·ã¹ãã ã«çŠç¹ãåœãŠãŠãã€ãã³ããœãŒã·ã³ã°ã¢ãŒããã¯ãã£ãè©³çŽ°ã«æ¢ããŸãã
ã€ãã³ããœãŒã·ã³ã°ãšã¯ïŒ
åŸæ¥ã®ã·ã¹ãã ã§ã¯ããšã³ãã£ãã£ã®çŸåšã®ç¶æ ã¯ããŒã¿ããŒã¹ã«çŽæ¥ä¿åãããŸããæŽæ°ãçºçãããšãæ¢åã®ã¬ã³ãŒãã倿ŽãŸãã¯äžæžããããŸãããã®ã¢ãããŒãã¯å€ãã®ã¢ããªã±ãŒã·ã§ã³ã§ããŸãæ©èœããŸãããæ¬¡ã®ãããªå Žåã«ã¯å¶éããããŸãã
- ç£æ»ãšå±¥æŽè¿œè·¡ãéèŠã§ããå Žåã
- è€éãªç¶æ é·ç§»ãåæ§ç¯ããå¿ èŠãããå Žåã
- ãªã¢ã«ã¿ã€ã ããŒã¿äŒæãšã€ãã³ãé§ååã¢ãŒããã¯ãã£ãå¿ èŠãªå Žåã
ã€ãã³ããœãŒã·ã³ã°ã¯ãåç¶æ 倿Žãäžå€ã®ã€ãã³ããšããŠä¿åããããšã§ããããã®å¶éã«å¯ŸåŠããŸãããããã®ã€ãã³ãã¯ã远èšå°çšã®ã€ãã³ãã¹ãã¢ã«æ°žç¶åãããŸãããšã³ãã£ãã£ã®çŸåšã®ç¶æ ãåæ§ç¯ããã«ã¯ãã€ãã³ããçºçããé åºã§åçãããŸãããã¹ãŠã®ãã©ã³ã¶ã¯ã·ã§ã³ãèšé²ããããã¹ãŠã®ãã©ã³ã¶ã¯ã·ã§ã³ãåèšããããšã§æ®é«ãèšç®ãããå°åž³ã®ããã«èããŠãã ããã
äž»èŠãªæŠå¿µ
- ãã¡ã€ã³ã€ãã³ã: ãã¡ã€ã³ã§çºçããäºå®ã衚ããã®ãç¶æ 倿Žã®äžå€ã®èšé²ã§ããäŸãšããŠã¯ãOrderCreatedïŒæ³šæäœæïŒãOrderShippedïŒæ³šæçºéïŒãPaymentReceivedïŒæ¯æãåé ïŒãªã©ããããŸãã
- ã€ãã³ãã¹ãã¢: ãã¡ã€ã³ã€ãã³ãã®ä¿åãšååŸã«æé©åããã远èšå°çšã®ããŒã¿ã¹ãã¢ã§ããã€ãã³ãã®æ°žç¶åãååŸã賌èªã®ã¡ã«ããºã ãæäŸããŸãã
- ã€ãã³ããã³ãã©ãŒ: ãã¡ã€ã³ã€ãã³ãã«åå¿ããã³ã³ããŒãã³ãã§ããèªã¿åãã¢ãã«ã®æŽæ°ãå€éšé£æºã®ããªã¬ãŒããã®ä»ã®ã¢ã¯ã·ã§ã³ãå®è¡ã§ããŸãã
- èªã¿åãã¢ãã«: ç¹å®ã®ã¯ãšãªãã¿ãŒã³ã«æé©åããã鿣èŠåãããããŒã¿è¡šçŸã§ããã€ãã³ããã³ãã©ãŒã«ãã£ãп޿°ãããããŒã¿ã®èªã¿åãå°çšãã¥ãŒãæäŸããŸãã
- ã¹ãããã·ã§ãã: ãšã³ãã£ãã£ã®çŸåšã®ç¶æ ã宿çã«ä¿åããããšã§ãç¶æ åæ§ç¯ãæé©åããããã«äœ¿çšãããææ³ã§ããç¶æ ãåæ§ç¯ããéãã·ã¹ãã ã¯ææ°ã®ã¹ãããã·ã§ãããããŒãããã¹ãããã·ã§ãããååŸãããåŸã«çºçããã€ãã³ãã®ã¿ãåçããŸãã
ã€ãã³ããœãŒã·ã³ã°ã®å©ç¹
ã€ãã³ããœãŒã·ã³ã°ã¯ãåŸæ¥ã®CRUDïŒäœæãèªã¿åããæŽæ°ãåé€ïŒã¢ãŒããã¯ãã£ã«æ¯ã¹ãŠããã€ãã®å©ç¹ããããŸãã
- å®å šãªç£æ»èšŒè·¡: ãã¹ãŠã®ç¶æ 倿Žãã€ãã³ããšããŠèšé²ãããã¢ããªã±ãŒã·ã§ã³ã®ããŒã¿ã®å æ¬çãªå±¥æŽãæäŸããŸããããã¯ç£æ»ããããã°ãã³ã³ãã©ã€ã¢ã³ã¹ã«ãšã£ãŠéåžžã«è²Žéã§ãã
- æéçã¯ãšãª: ãšã³ãã£ãã£ã®ç¶æ ãä»»æã®æç¹ããã¯ãšãªã§ããæ©èœãããã«ãããå±¥æŽåæãšã¬ããŒãäœæãå¯èœã«ãªããŸããäŸãã°ãç¹å®ã®æ¥ã«ç¹å®ã®å°åã§çºçããæ³šææ°ã倿ã§ããŸãã
- ãããã°ã®ç°¡çŽ å: ã€ãã³ããåçããããšã§ãã¢ããªã±ãŒã·ã§ã³ã®éå»ã®ããããç¶æ ãåçŸã§ãããã°ã®ç¹å®ãšä¿®æ£ã容æã«ãªããŸãã
- ç¹å®ã®æäœã®ããã©ãŒãã³ã¹åäž: ç¶æ ã®åæ§ç¯ã¯é ããªãå ŽåããããŸãããèªã¿åãã¢ãã«ã®æŽæ°ã¯ç¹å®ã®ã¯ãšãªãã¿ãŒã³ã«å¯ŸããŠé«åºŠã«æé©åã§ããŸãã
- ã€ãã³ãé§ååã¢ãŒããã¯ãã£: ã€ãã³ããœãŒã·ã³ã°ã¯ã€ãã³ãé§ååã¢ãŒããã¯ãã£ãšèªç¶ã«é£æºãããªã¢ã«ã¿ã€ã ã®ããŒã¿äŒæãšä»ã®ã·ã¹ãã ãšã®çµ±åãå¯èœã«ããŸãã
- 容æãªé²å: æ¢åã®ã€ãã³ãã¹ããªãŒã ã«åœ±é¿ãäžããããšãªãæ°ããã€ãã³ããã³ãã©ãŒã远å ã§ãããããæ°æ©èœã®è¿œå ãæ¢åæ©èœã®å€æŽã容æã«ãªããŸãã
- ã¹ã±ãŒã©ããªãã£ã®åäž: ã€ãã³ãåŠçãè€æ°ã®ããŒãã«åæ£ããããšã§ãã¹ã±ãŒã©ããªãã£ãšå埩åãåäžãããããšãã§ããŸãã
ã€ãã³ããœãŒã·ã³ã°ã®èª²é¡
ã€ãã³ããœãŒã·ã³ã°ã«ã¯ãæ éã«æ€èšããå¿ èŠãããããã€ãã®èª²é¡ããããŸãã
- è€éæ§: ã€ãã³ããœãŒã·ã³ã°ãå®è£ ããã«ã¯ãç°ãªãèãæ¹ãšããã¡ã€ã³ã¢ããªã³ã°ããã³ã€ãã³ãé§ååååã«é¢ããããæ·±ãçè§£ãå¿ èŠã§ãã
- çµææŽåæ§: èªã¿åãã¢ãã«ã¯ã€ãã³ãã¹ãã¢ãšçµæçã«æŽåæ§ãããããããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ã«é å»¶ãäžæŽåãçããå¯èœæ§ããããŸããæ¥œèгçããã¯ãè£åãã©ã³ã¶ã¯ã·ã§ã³ãªã©ãçµææŽåæ§ãåŠçããããã®æŠç¥ãå®è£ ããå¿ èŠããããŸãã
- ã€ãã³ãã®ããŒãžã§ã³ç®¡ç: ã¢ããªã±ãŒã·ã§ã³ã®é²åã«äŒŽãããã¡ã€ã³ã€ãã³ãã®æ§é ã倿Žãããå¯èœæ§ããããŸããåŸæ¹äºææ§ã確ä¿ããããã«ã¯ãã€ãã³ãç§»è¡ãã¹ããŒãé²åãªã©ãã€ãã³ãã®ããŒãžã§ã³ç®¡çãåŠçããããã®æŠç¥ãå®è£ ããå¿ èŠããããŸãã
- ç¶æ ã®åæ§ç¯: ã€ãã³ããåçããŠãšã³ãã£ãã£ã®ç¶æ ãåæ§ç¯ããããšã¯ãç¹ã«å€æ°ã®ã€ãã³ããæã€ãšã³ãã£ãã£ã®å ŽåãæéããããããšããããŸããã¹ãããã·ã§ããã¯ãã®åé¡ã軜æžããã®ã«åœ¹ç«ã¡ãŸãã
- é©åãªã€ãã³ãã¹ãã¢ã®éžæ: ã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãã¹ã±ãŒã©ããªãã£ãä¿¡é Œæ§ã®èŠä»¶ãæºããé©åãªã€ãã³ãã¹ãã¢ãéžæããããšãéèŠã§ãã
ãã¡ã€ã³ã€ãã³ãã¹ãã¬ãŒãžã·ã¹ãã ïŒæ¯èŒæŠèŠ
ã€ãã³ãã¹ãã¢ã¯ã€ãã³ããœãŒã·ã³ã°ã·ã¹ãã ã®äžæ žã§ãããã¡ã€ã³ã€ãã³ãã®æ°žç¶åãšååŸãæ åœããŸããã€ãã³ãã¹ãã¢ã®éžæã¯ãã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹èŠä»¶ãã¹ã±ãŒã©ããªãã£ã®å¿ èŠæ§ãããŒã¿æŽåæ§ã®ä¿èšŒãäºç®å¶çŽãªã©ãããŸããŸãªèŠå ã«äŸåããŸããããã§ã¯ãç°ãªãã€ãã³ãã¹ãã¬ãŒãžã·ã¹ãã ã®æ¯èŒæŠèŠã瀺ããŸãã1. ãªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ (SQL)
PostgreSQLãMySQLãSQL Serverãªã©ã®ãªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ã¯ãã€ãã³ãã¹ãã¢ãšããŠäœ¿çšã§ããŸããACIDïŒååæ§ãäžè²«æ§ãå颿§ãèä¹ æ§ïŒç¹æ§ãšåŒ·åãªããŒã¿äžè²«æ§ãæäŸããŸãããé«ã¹ã«ãŒãããã®ã€ãã³ãåŠçã«ã¯æãå¹ççãªéžæè¢ã§ã¯ãªãå ŽåããããŸãã
é·æïŒ
- ACIDç¹æ§: ããŒã¿ã®æŽåæ§ãšäžè²«æ§ãä¿èšŒããŸãã
- æçãããã¯ãããžãŒ: åºç¯ãªããŒã«ãšãµããŒããåãã確ç«ããããã¯ãããžãŒã§ãã
- 芪ãã¿ããã: ã»ãšãã©ã®éçºè ããªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ã«ç²ŸéããŠããŸãã
- 匷åãªæŽåæ§: 匷åãªæŽåæ§ä¿èšŒãæäŸããŸãã
çæïŒ
- ããã©ãŒãã³ã¹ããã«ããã¯: 倧éã®ã€ãã³ãã¹ããªãŒã ã«ãšã£ãŠããã©ãŒãã³ã¹ã®ããã«ããã¯ã«ãªãå¯èœæ§ããããŸãã
- ã¹ããŒãé²åã®èª²é¡: ã¹ããŒã倿Žã®åŠçã¯è€éã§ãããæ éãªèšç»ãå¿ èŠã§ãã
- ã¹ã±ãŒã©ããªãã£ã®å¶é: ç¹ã«æžã蟌ã¿è² è·ã®é«ãã¯ãŒã¯ããŒãã®å Žåããªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ã®ã¹ã±ãŒãªã³ã°ã¯å°é£ãªå ŽåããããŸãã
- 远èšå°çšæäœã«æé©åãããŠããªã: ãªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ã¯è¿œèšå°çšæäœã®ããã«ç¹å¥ã«èšèšãããŠããªããããããã©ãŒãã³ã¹ã«åœ±é¿ãäžããå¯èœæ§ããããŸãã
å®è£ äŸ (PostgreSQL)ïŒ
ãã¡ã€ã³ã€ãã³ããä¿åããããŒãã«ãäœæããŸãã
CREATE TABLE events (\n event_id UUID PRIMARY KEY,\n aggregate_id UUID NOT NULL,\n event_type VARCHAR(255) NOT NULL,\n event_data JSONB NOT NULL,\n created_at TIMESTAMP WITHOUT TIME ZONE NOT NULL DEFAULT (NOW() AT TIME ZONE 'utc')\n);\n
æ°ããã€ãã³ããæ¿å ¥ããŸãã
INSERT INTO events (event_id, aggregate_id, event_type, event_data)\nVALUES (uuid_generate_v4(), 'a1b2c3d4-e5f6-7890-1234-567890abcdef', 'OrderCreated', '{\"orderId\": \"ORD-123\", \"customerId\": \"CUST-456\", \"amount\": 100}');\n
2. NoSQLããŒã¿ããŒã¹
MongoDBãCassandraãCouchbaseãªã©ã®NoSQLããŒã¿ããŒã¹ã¯ããªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ãšæ¯èŒããŠãããé«ãæè»æ§ãšã¹ã±ãŒã©ããªãã£ãæäŸããŸãã倧éã®ã€ãã³ãã¹ããªãŒã ã®åŠçã«é©ããŠããŸãããããŒã¿æŽåæ§ã®ä¿èšŒã匱ãå ŽåããããŸãã
é·æïŒ
- ã¹ã±ãŒã©ããªãã£: æ°Žå¹³ã¹ã±ãŒã©ããªãã£ã®ããã«èšèšãããŠããã倧éã®ããŒã¿ãåŠçã§ããŸãã
- æè»æ§: ã¹ããŒãã¬ã¹ãŸãã¯æè»ãªã¹ããŒãã«ãããã€ãã³ãã®ããŒãžã§ã³ç®¡çã容æã«ãªããŸãã
- ããã©ãŒãã³ã¹: é«ã¹ã«ãŒãããã®èªã¿åãããã³æžãèŸŒã¿æäœã«æé©åãããŠããŸãã
- è²»çšå¯Ÿå¹æ: ç¹å®ã®ã¯ãŒã¯ããŒãã§ã¯ããªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ãããè²»çšå¯Ÿå¹æãé«ãå ŽåããããŸãã
çæïŒ
- çµææŽåæ§: ãªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ãšæ¯èŒããŠãããŒã¿æŽåæ§ã®ä¿èšŒã匱ãå ŽåããããŸãã
- è€éæ§: NoSQLããŒã¿ããŒã¹ã®æŠå¿µãšããŒã¿ã¢ããªã³ã°æè¡ã«ã€ããŠããæ·±ãçè§£ãå¿ èŠã§ãã
- æç床: äžéšã®NoSQLããŒã¿ããŒã¹ã¯ããªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ãããæç床ãäœãå ŽåããããŸãã
- ã¯ãšãªã®å¶é: ã¯ãšãªæ©èœã¯ããªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ãšæ¯èŒããŠå¶éãããå ŽåããããŸãã
å®è£ äŸ (MongoDB)ïŒ
ãã¡ã€ã³ã€ãã³ããã³ã¬ã¯ã·ã§ã³ã«ä¿åããŸãã
{\n "event_id": "a1b2c3d4-e5f6-7890-1234-567890abcdef",\n "aggregate_id": "f1g2h3i4-j5k6-l7m8-n9o0-p1q2r3s4t5uv",\n "event_type": "OrderCreated",\n "event_data": {\n "orderId": "ORD-123",\n "customerId": "CUST-456",\n "amount": 100\n },\n "created_at": ISODate("2023-10-27T10:00:00.000Z")\n}\n
3. å°çšã€ãã³ãã¹ãã¢
EventStoreDBãAxonDBãªã©ã®å°çšã€ãã³ãã¹ãã¢ã¯ãã€ãã³ããœãŒã·ã³ã°ã®ããã«ç¹å¥ã«èšèšãããŠããŸãããããã¯è¿œèšå°çšã¹ãã¬ãŒãžãã€ãã³ãã®ããŒãžã§ã³ç®¡çãã¹ããªãŒã 管çãªã©ã®æ©èœãæäŸããŸããã€ãã³ããœãŒã·ã³ã°ã«çå£ã«åãçµãã®ã§ããã°ããããã®ããŒã¿ããŒã¹ãéåžžã¯æè¯ã®éžæè¢ã§ãã
é·æïŒ
- ã€ãã³ããœãŒã·ã³ã°ã«æé©å: 远èšå°çšã¹ãã¬ãŒãžãã¹ããªãŒã 管çãã€ãã³ãããŒãžã§ã³ç®¡çãªã©ã®æ©èœãåããã€ãã³ããœãŒã·ã³ã°ã®ããã«ç¹å¥ã«èšèšãããŠããŸãã
- é«ããã©ãŒãã³ã¹: é«ã¹ã«ãŒãããã®ã€ãã³ãåŠçã«æé©åãããŠããŸãã
- çµææŽåæ§ã®åŠç: çµææŽåæ§ãåŠçããããã®çµã¿èŸŒã¿ã¡ã«ããºã ããããŸãã
- ã¹ããªãŒã 管ç: ã€ãã³ãã¹ããªãŒã ã®ç®¡çãšã¯ãšãªãç°¡çŽ åããŸãã
çæïŒ
- ãã³ããŒããã¯ã€ã³: ãã³ããŒããã¯ã€ã³ãåŒãèµ·ããå¯èœæ§ããããŸãã
- ã³ã¹ã: ä»ã®éžæè¢ãããé«äŸ¡ã«ãªãå¯èœæ§ããããŸãã
- åŠç¿æ²ç·: æ°ãããã¯ãããžãŒãåŠç¿ããå¿ èŠããããŸãã
- æ¡çšã®å¶é: ãªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ãNoSQLããŒã¿ããŒã¹ãããåºãæ¡çšãããŠããŸããã
å®è£ äŸ (EventStoreDB)ïŒ
EventStoreDBã¯ã¹ããªãŒã ã䜿çšããŠã€ãã³ããä¿åããŸããEventStoreDBã¯ã©ã€ã¢ã³ãã©ã€ãã©ãªã䜿çšããŠãã¹ããªãŒã ã«ã€ãã³ãã远èšã§ããŸãã
4. ã¡ãã»ãŒãžãã¥ãŒ (Kafka, RabbitMQ)
Apache KafkaãRabbitMQã®ãããªã¡ãã»ãŒãžãã¥ãŒã¯ãç¹ã«ã¹ããªãŒã åŠçãã¬ãŒã ã¯ãŒã¯ãšçµã¿åãããŠãã€ãã³ãã¹ãã¢ãšããŠäœ¿çšã§ããŸããé«ã¹ã«ãŒããããã¹ã±ãŒã©ããªãã£ãèé害æ§ãæäŸããå€§èŠæš¡ãªã€ãã³ãé§ååã¢ããªã±ãŒã·ã§ã³ã«é©ããŠããŸãããã ããéåžžã¯æ°žç¶ã¹ãã¬ãŒãžãšããããããäžæçãªãã©ã³ã¹ããŒãã¡ã«ããºã ãšããŠäœ¿çšãããŸãã
é·æïŒ
- é«ã¹ã«ãŒããã: é«ã¹ã«ãŒãããã®ã¡ãã»ãŒãžåŠçã®ããã«èšèšãããŠããŸãã
- ã¹ã±ãŒã©ããªãã£: é«åºŠã«ã¹ã±ãŒã©ãã«ã§ããã倧éã®ã€ãã³ããåŠçã§ããŸãã
- èé害æ§: çµã¿èŸŒã¿ã®èé害æ§ã¡ã«ããºã ããããŸãã
- ãªã¢ã«ã¿ã€ã åŠç: ãªã¢ã«ã¿ã€ã ã®ã€ãã³ãåŠçãå¯èœã«ããŸãã
çæïŒ
- è€éæ§: ã¡ãã»ãŒãžãã¥ãŒã®æŠå¿µãšã¹ããªãŒã åŠçãã¬ãŒã ã¯ãŒã¯ã«ã€ããŠããæ·±ãçè§£ãå¿ èŠã§ãã
- ããŒã¿èä¹ æ§: ããŒã¿èä¹ æ§ã¯æ éã«æ§æããå¿ èŠããããŸãã
- ã€ãã³ãåç: ã€ãã³ãã®åçã¯ãå°çšã€ãã³ãã¹ãã¢ãããè€éã«ãªãå¯èœæ§ããããŸãã
- é åºä¿èšŒ: æ§æã«ãã£ãŠã¯ãé åºä¿èšŒãå¶éãããå ŽåããããŸãã
å®è£ äŸ (Apache Kafka)ïŒ
ãã¡ã€ã³ã€ãã³ããKafkaãããã¯ã«ãããªãã·ã¥ããŸãã
// Producer configuration\nProperties props = new Properties();\nprops.put(\"bootstrap.servers\", \"localhost:9092\");\nprops.put(\"key.serializer\", \"org.apache.kafka.common.serialization.StringSerializer\");\nprops.put(\"value.serializer\", \"org.apache.kafka.common.serialization.StringSerializer\");\n\nProducer<String, String> producer = new KafkaProducer<>(props);\n\n// Create a record\nProducerRecord<String, String> record = new ProducerRecord<>(\"order-events\", \"ORD-123\", \"{\"event_type\": \"OrderCreated\", \"customerId\": \"CUST-456\", \"amount\": 100}\");\n\n// Send the record\nproducer.send(record);\n\nproducer.close();\n
5. ã¯ã©ãŠãããŒã¹ã®ã€ãã³ãã¹ãã¢
ã¯ã©ãŠããããã€ããŒã¯ãAzure Event HubsãAWS KinesisãGoogle Cloud Pub/Subãªã©ã®ãããŒãžãã€ãã³ãã¹ãã¢ãµãŒãã¹ãæäŸããŠããŸãããããã®ãµãŒãã¹ã¯ãã¹ã±ãŒã©ããªãã£ãä¿¡é Œæ§ã䜿ãããããæäŸããã¯ã©ãŠããã€ãã£ãã¢ããªã±ãŒã·ã§ã³ã«é©ããéžæè¢ãšãªããŸãã
é·æïŒ
- ã¹ã±ãŒã©ããªãã£: é«åºŠã«ã¹ã±ãŒã©ãã«ã§ããã倧éã®ã€ãã³ããåŠçã§ããŸãã
- ä¿¡é Œæ§: çµã¿èŸŒã¿ã®ä¿¡é Œæ§ãšèé害æ§ã
- 䜿ãããã: ãããŒãžããµãŒãã¹ã¯ãããã€ãšã¡ã³ããã³ã¹ãç°¡çŽ åããŸãã
- çµ±å: ä»ã®ã¯ã©ãŠããµãŒãã¹ãšã®ã·ãŒã ã¬ã¹ãªçµ±åã
çæïŒ
- ãã³ããŒããã¯ã€ã³: ãã³ããŒããã¯ã€ã³ãåŒãèµ·ãããŸãã
- ã³ã¹ã: èªå·±ç®¡çãœãªã¥ãŒã·ã§ã³ãããé«äŸ¡ã«ãªãå¯èœæ§ããããŸãã
- ã¬ã€ãã³ã·: ãããã¯ãŒã¯ã¬ã€ãã³ã·ãããã©ãŒãã³ã¹ã«åœ±é¿ãäžããå¯èœæ§ããããŸãã
- å¶åŸ¡: åºç€ãšãªãã€ã³ãã©ã¹ãã©ã¯ãã£ã«å¯Ÿããå¶åŸ¡ãå°ãªããªããŸãã
ããã©ãŒãã³ã¹ã®èæ ®äºé
ããã©ãŒãã³ã¹ã¯ããã¡ã€ã³ã€ãã³ãã¹ãã¬ãŒãžã·ã¹ãã ãéžæããéã®éèŠãªèŠçŽ ã§ããèæ ®ãã¹ãããã©ãŒãã³ã¹ã«é¢ããäºé ãããã€ã瀺ããŸãã
- æžã蟌ã¿ã¹ã«ãŒããã: 倧éã®çä¿¡ã€ãã³ããåŠçããèœåã
- èªã¿åãã¬ã€ãã³ã·: ã€ãã³ããååŸãããšã³ãã£ãã£ã®ç¶æ ãåæ§ç¯ããã®ã«ãããæéã
- äžŠè¡æ§: åæèªã¿åãããã³æžãèŸŒã¿æäœãåŠçããèœåã
- ã¹ãã¬ãŒãžå®¹é: ã€ãã³ããä¿åããããã«å¿ èŠãªã¹ãã¬ãŒãžéã
- ãããã¯ãŒã¯ã¬ã€ãã³ã·: ã¢ããªã±ãŒã·ã§ã³ãšã€ãã³ãã¹ãã¢éã®ã¬ã€ãã³ã·ã
ããã©ãŒãã³ã¹ãæé©åããããã«ãæ¬¡ã®ææ³ãæ€èšããŠãã ããã
- ãããåŠç: ã€ãã³ããã€ãã³ãã¹ãã¢ã«æžã蟌ãåã«ãããåŠçããããšã§ãæžã蟌ã¿ã¹ã«ãŒããããåäžãããããšãã§ããŸãã
- ãã£ãã·ã¥: é »ç¹ã«ã¢ã¯ã»ã¹ãããã€ãã³ãããã£ãã·ã¥ããããšã§ãèªã¿åãã¬ã€ãã³ã·ãççž®ã§ããŸãã
- ã¹ãããã·ã§ãã: ã¹ãããã·ã§ããã¯ããšã³ãã£ãã£ã®ç¶æ ãåæ§ç¯ããéã«åçããå¿ èŠã®ããã€ãã³ãã®æ°ãæžããããšãã§ããŸãã
- ã€ã³ããã¯ã¹äœæ: éçŽIDããã®ä»ã®é¢é£å±æ§ã«åºã¥ããŠã€ãã³ãã«ã€ã³ããã¯ã¹ãä»ããããšã§ãã¯ãšãªããã©ãŒãã³ã¹ãåäžãããããšãã§ããŸãã
- ã·ã£ãŒãã£ã³ã°: ã€ãã³ãã¹ãã¢ãè€æ°ã®ããŒãã«ã·ã£ãŒãã£ã³ã°ããããšã§ãã¹ã±ãŒã©ããªãã£ãšããã©ãŒãã³ã¹ãåäžãããããšãã§ããŸãã
ããŒã¿æŽåæ§
ããŒã¿æŽåæ§ã¯ã€ãã³ããœãŒã·ã³ã°ã«ãããŠæãéèŠã§ããã€ãã³ããä¿¡é Œæ§é«ãæ£ããé åºã§æ°žç¶åãããããšãä¿èšŒããããšãäžå¯æ¬ ã§ããããŒã¿æŽåæ§ãç¶æããããã®æŠç¥ãããã€ã瀺ããŸãã
- ãã©ã³ã¶ã¯ã·ã§ã³: ãã©ã³ã¶ã¯ã·ã§ã³ã䜿çšããŠãã€ãã³ããã€ãã³ãã¹ãã¢ã«ã¢ãããã¯ã«æžã蟌ãŸããããšãä¿èšŒããŸãã
- åªçæ§: ã€ãã³ããã³ãã©ãŒãåªçã«èšèšããæå³ããªãå¯äœçšãåŒãèµ·ããããšãªãåãã€ãã³ããè€æ°ååŠçã§ããããã«ããŸãã
- 楜芳çããã¯: 楜芳çããã¯ã䜿çšããŠãåãéçŽãžã®åææŽæ°ã鲿¢ããŸãã
- ã€ãã³ãæ€èšŒ: ã€ãã³ããã€ãã³ãã¹ãã¢ã«æ°žç¶åããåã«æ€èšŒããããããæå¹ã§äžè²«æ§ãããããšã確èªããŸãã
- ãã§ãã¯ãµã : ã€ãã³ãã®ãã§ãã¯ãµã ãèšç®ããã€ãã³ããšãšãã«ä¿åããŸããã€ãã³ããååŸããéã«ãã§ãã¯ãµã ãæ€èšŒããç ŽæããŠããªãããšã確èªããŸãã
ã€ãã³ãã®ããŒãžã§ã³ç®¡ç
ã¢ããªã±ãŒã·ã§ã³ã®é²åã«äŒŽãããã¡ã€ã³ã€ãã³ãã®æ§é ã倿Žãããå¯èœæ§ããããŸããåŸæ¹äºææ§ã確ä¿ããããŒã¿æå€±ãé²ãããã«ãã€ãã³ãã®ããŒãžã§ã³ç®¡çãåŠçããããšãäžå¯æ¬ ã§ããã€ãã³ãã®ããŒãžã§ã³ç®¡çãåŠçããããã®æŠç¥ãããã€ã瀺ããŸãã
- ã€ãã³ãã¢ãããã£ã¹ãã£ã³ã°: ã€ãã³ãã¹ãã¢ããèªã¿åãéã«ãå€ãã€ãã³ãããŒãžã§ã³ãææ°ããŒãžã§ã³ã«å€æããŸãã
- ã¹ããŒãé²å: æ°ãããã£ãŒã«ãã远å ããããæ¢åã®ãã£ãŒã«ãã倿ŽãããããŠãæéã®çµéãšãšãã«ã€ãã³ãã¹ããŒããé²åãããŸããå€ãã€ãã³ãããŒãžã§ã³ãåŒãç¶ãæ£ããåŠçãããããšã確èªããŸãã
- ã€ãã³ãç§»è¡: å€ãã€ãã³ããææ°ã®ã¹ããŒãããŒãžã§ã³ã«ç§»è¡ããŸããããã¯ããã¯ã°ã©ãŠã³ãããã»ã¹ãšããŠå®è¡ã§ããŸãã
å®äžçã®äŸ
ã€ãã³ããœãŒã·ã³ã°ã¯ãããŸããŸãªæ¥çãã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšãããŠããŸããå®äžçã®äŸãããã€ã瀺ããŸãã
- Eã³ããŒã¹: 泚æå±¥æŽãåšåº«å€æŽã顧客ã¢ã¯ãã£ããã£ã®è¿œè·¡ãäŸãã°ãã°ããŒãã«ãªEã³ããŒã¹ãã©ãããã©ãŒã ã§ã¯ãã€ãã³ããœãŒã·ã³ã°ã䜿çšããŠãããŸããŸãªåœããã®æ³šæã远跡ããé貚æç®ãåŠçããè€æ°ã®å庫ã«ãããåšåº«ã管çããå ŽåããããŸãã
- éè¡æ¥: ååŒã®èšé²ãå£åº§æ®é«ã®è¿œè·¡ãè²¡åæŽ»åã®ç£æ»ãå€åœç±éè¡ã¯ãã€ãã³ããœãŒã·ã³ã°ã䜿çšããŠãç°ãªãæ¯åºãé貚ã«ãããååŒã远跡ããå®å šãªç£æ»èšŒè·¡ã確ä¿ã§ããŸãã
- ã²ãŒã : ãã¬ã€ã€ãŒã®ã¢ã¯ã·ã§ã³ãã²ãŒã ã®ç¶æ 倿Žãã€ãã³ãå±¥æŽã®è¿œè·¡ããªã³ã©ã€ã³ãã«ããã¬ã€ã€ãŒã²ãŒã ã§ã¯ãè€æ°ã®ãã¬ã€ã€ãŒãšãµãŒããŒéã§äžè²«ããã²ãŒã ã®ç¶æ ãç¶æããããã«ãã€ãã³ããœãŒã·ã³ã°ããã䜿çšãããŸãã
- ãµãã©ã€ãã§ãŒã³ç®¡ç: 補åã®ç§»åãåšåº«ã¬ãã«ãé éã¹ã±ãžã¥ãŒã«ã®è¿œè·¡ãã°ããŒãã«ãªããžã¹ãã£ã¯ã¹äŒæ¥ã¯ãã€ãã³ããœãŒã·ã³ã°ã䜿çšããŠãç°ãªãåœéã®åºè·ã远跡ããé颿ç¶ããåŠçããé éã¹ã±ãžã¥ãŒã«ã管çã§ããŸãã
é©åãªã¹ãã¬ãŒãžã·ã¹ãã ã®éžæïŒæææ±ºå®ãããªãã¯ã¹
ã©ã®ãã¡ã€ã³ã€ãã³ãã¹ãã¬ãŒãžã·ã¹ãã ãã¢ããªã±ãŒã·ã§ã³ã«é©ããŠãããã倿ããããã«ãæ¬¡ã®æææ±ºå®ãããªãã¯ã¹ãèæ ®ããŠãã ããã
| èŠå | ãªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ | NoSQLããŒã¿ããŒã¹ | å°çšã€ãã³ãã¹ã㢠| ã¡ãã»ãŒãžãã¥ãŒ | ã¯ã©ãŠãããŒã¹ã®ã€ãã³ãã¹ã㢠|
|---|---|---|---|---|---|
| æŽåæ§ | 匷å | çµæç | 匷å/çµæç | çµæç | çµæç |
| ã¹ã±ãŒã©ããªã㣠| å¶éãã | é«ã | é«ã | é«ã | é«ã |
| ããã©ãŒãã³ã¹ | äžçšåºŠ | é«ã | é«ã | é«ã | é«ã |
| è€éæ§ | äœã | äžçšåºŠ | äžçšåºŠ | é«ã | äžçšåºŠ |
| ã³ã¹ã | äžçšåºŠ | äœ/äž | äž/é« | äœ/äž | äž/é« |
| æç床 | é«ã | äžçšåºŠ | äžçšåºŠ | é«ã | äžçšåºŠ |
| ãŠãŒã¹ã±ãŒã¹ | äžçšåºŠã®ã€ãã³ãéãæã€ã·ã³ãã«ãªã¢ããªã±ãŒã·ã§ã³ | æè»ãªã¹ããŒãèŠä»¶ãæã€é«ããªã¥ãŒã ã¢ããªã±ãŒã·ã§ã³ | ç¹å®ã®èŠä»¶ãæã€ã€ãã³ããœãŒã·ã³ã°äžå¿ã®ã¢ããªã±ãŒã·ã§ã³ | ãªã¢ã«ã¿ã€ã ã€ãã³ãåŠçãšã¹ããªãŒã åæ | ã¹ã±ãŒã©ããªãã£ãšä¿¡é Œæ§ã®èŠä»¶ãæã€ã¯ã©ãŠããã€ãã£ãã¢ããªã±ãŒã·ã§ã³ |
å®çšçãªæŽå¯
ã€ãã³ããœãŒã·ã³ã°ãå®è£ ããããã®å®çšçãªæŽå¯ãããã€ã瀺ããŸãã
- å°ããå§ãã: ãŸãå°ãããæç¢ºã«å®çŸ©ããããã¡ã€ã³ã§ã€ãã³ããœãŒã·ã³ã°ã®çµéšãç©ã¿ãããããããå€§èŠæš¡ã§è€éãªãã¡ã€ã³ã«é©çšããŸãã
- ãã¡ã€ã³ã«çŠç¹ãåœãŠã: ãã¡ã€ã³ãæ éã«ã¢ãã«åããäž»èŠãªãã¡ã€ã³ã€ãã³ããç¹å®ããŸãã
- é©åãªã¹ãã¬ãŒãžã·ã¹ãã ãéžæãã: ã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãã¹ã±ãŒã©ããªãã£ãããŒã¿æŽåæ§èŠä»¶ãæºããã€ãã³ãã¹ãã¢ãéžæããŸãã
- ã€ãã³ãã®ããŒãžã§ã³ç®¡çãå®è£ ãã: åŸæ¹äºææ§ã確ä¿ããããã«ãæåããã€ãã³ãã®ããŒãžã§ã³ç®¡çãèšç»ããŸãã
- ããã©ãŒãã³ã¹ãç£èŠãã: ã€ãã³ãã¹ãã¢ãšã€ãã³ããã³ãã©ãŒã®ããã©ãŒãã³ã¹ãç£èŠããæœåšçãªããã«ããã¯ãç¹å®ããŸãã
- ãããã€ãèªååãã: ã€ãã³ããœãŒã·ã³ã°ã€ã³ãã©ã¹ãã©ã¯ãã£ã®ãããã€ãšç®¡çãèªååããŸãã
- ãã¬ãŒããªããèæ ®ãã: ã€ãã³ããœãŒã·ã³ã°ã«ã¯ãã¬ãŒããªãã䌎ããŸãããã®ãã¿ãŒã³ããåŸãããå©ç¹ã®ããã«è€éããå¢ãããšãçè§£ããŠãã ããã
çµè«
ã€ãã³ããœãŒã·ã³ã°ã¯ãå®å šãªç£æ»èšŒè·¡ãæéçã¯ãšãªãç¹å®ã®æäœã®ããã©ãŒãã³ã¹åäžãªã©ãæ°å€ãã®å©ç¹ãæäŸãã匷åãªã¢ãŒããã¯ãã£ãã¿ãŒã³ã§ããããããè€éæ§ãçµææŽåæ§ãã€ãã³ãã®ããŒãžã§ã³ç®¡çãªã©ãæ éã«æ€èšããå¿ èŠããã課é¡ãååšããŸãããã¡ã€ã³ã€ãã³ãã¹ãã¬ãŒãžã·ã¹ãã ãæ éã«éžæãããã¹ããã©ã¯ãã£ã¹ãå®è£ ããããšã§ãã€ãã³ããœãŒã·ã³ã°ãæåè£ã«æŽ»çšããã¹ã±ãŒã©ãã«ã§å埩åã®ããç£æ»å¯èœãªã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ã§ããŸãã
ãã®ã¬ã€ãã§ã¯ãã€ãã³ããœãŒã·ã³ã°ãšããã€ãã®äººæ°ã®ãããã¡ã€ã³ã€ãã³ãã¹ãã¬ãŒãžã·ã¹ãã ã®æŠèŠã説æããŸããããããžã§ã¯ãã®èŠä»¶ã®ç¹å®ã®ããŒãºã«åãããŠæé©ãªã·ã¹ãã ãéžæããŠãã ããã
ãã®ã³ã³ãã³ãã¯ã°ããŒãã«ãªèªè ã察象ãšããŠãããããç¬èªã®ç¶æ³ãæåçèæ¯ã«åãããŠæŠå¿µãé©çšããŠãã ãããã€ãã³ããœãŒã·ã³ã°ã®ååã¯æ®éçã§ãããå®è£ ã¯ç¹å®ã®ããŒãºãšãªãœãŒã¹ã«ãã£ãŠç°ãªãå ŽåããããŸãã