Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
予約システムと Zendesk のニアリアルタイム連携アーキテクチャ
Search
Kei Kamikawa
February 13, 2023
Programming
2
600
予約システムと Zendesk のニアリアルタイム連携アーキテクチャ
NOT A HOTEL #4 LT
Kei Kamikawa
February 13, 2023
Tweet
Share
More Decks by Kei Kamikawa
See All by Kei Kamikawa
htmx is fun!
codehex
2
230
すぐ使える Cloudflare Workers!
codehex
13
2.9k
Go to Cloudflare Workers
codehex
8
1.6k
AI Gateway 使っているよ!
codehex
2
1.2k
日時処理の新スタンダード: Synchro によるタイムゾーン安全、楽々開発
codehex
1
1.4k
Cloudflare Workers は楽しい!
codehex
9
2.9k
gRPC Client on Cloudflare Workers
codehex
2
4.9k
NOT A HOTEL AI コンシェルジュ「Kevin」とキャッシュ
codehex
1
1.4k
NOT A HOTEL AIコンシェルジュ「Kevin」の開発秘話
codehex
8
120k
Other Decks in Programming
See All in Programming
Let's learn code review
riofujimon
2
630
Powerfully Typed TypeScript
euxn23
3
850
大規模UIKitベースアプリへのTCAの段階的導入/gradual-adoption-of-tca-in-a-large-scale-uikit-based-app
takehilo
2
220
Runtime Objects in Rust
mitsuhiko
0
200
otelcol receiver 自作RTA / Pepabo Tech Conference #22 春のSREまつり
arthur1
0
100
Fast JSX: Don't clone props object #28768
yossydev
1
230
『Railsオワコン』と言われる時代に、なぜブルーモ証券はRailsを選ぶのか
free_world21
2
460
株式会社ゼネテック
genetec
0
120
From Spring Boot 2 to Spring Boot 3 with Java 21 and Jakarta EE
ivargrimstad
0
1.2k
仕様と実装で学ぶOpenTelemetry
drumato
2
190
戦略的DDDは重いのか? / Is strategic DDD heavy?
pictiny
3
2k
最近コードレビューで指摘したこと
forrep
3
110
Featured
See All Featured
A Philosophy of Restraint
colly
197
16k
Designing for humans not robots
tammielis
247
25k
Pencils Down: Stop Designing & Start Developing
hursman
117
11k
The MySQL Ecosystem @ GitHub 2015
samlambert
244
12k
Code Reviewing Like a Champion
maltzj
515
39k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
18
7k
Art, The Web, and Tiny UX
lynnandtonic
290
19k
StorybookのUI Testing Handbookを読んだ
zakiyama
13
4.7k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
22
1.4k
Designing for Performance
lara
601
67k
Agile that works and the tools we love
rasmusluckow
325
20k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
20
1.8k
Transcript
༧γεςϜͱ ;FOEFTLͷχΞϦΞϧλΠϜ ࿈ܞΞʔΩςΫνϟ /05")05&-5"-,
8)0".* +645461&326*$,
!DPEFIFY !$PEF)FY w /05")05&-ͷίϯγΣϧδϡۀ ʹؔ࿈ͨ͠։ൃΛ͍ͬͯ·͢ʂ w ࠷ۙ;FOEFTLઃఆͱʹΒΊͬ͜
ࣗͷνʔϜ͕ͬͯΔ͜ͱ
;FOEFTL
;FOEFTL w ;FOEFTLΧελϚʔαϙʔτͷ4BB4Ͱ͢ w ΧελϚʔαϙʔτνέοτΛཧͰ͖·͢ w &ϝʔϧɺνϟοτɺίʔϧͳͲͷνϟωϧΛհ͠ ͓ͯ٬༷ͱͷίϛϡχέʔγϣϯΛཧͰ͖·͢
νέοτৄࡉ
νέοτৄࡉ w ͓٬༷͔Βͷ͓͍߹Θͤ༰Λ֬ೝͰ͖·͢ w ͓٬༷ͷฦ৴͔͜͜ΒͰ͖·͢ʢը໘ӈʣ w ͓٬༷ͷใΛ֬ೝͰ͖·͢ ʢνέοτϑΟʔϧυɻը໘ࠨͷྻʣ
νέοτҰཡʢϏϡʔʣ
νέοτҰཡʢϏϡʔʣ w νέοτΛҰཡͰ͖·͢ɻ w νέοτϑΟʔϧυͷใΛجʹฒͼସ͑ɺϑΟϧ λϦϯά͕Ͱ͖·͢ɻ
͋Δڍ͕ͬͨ $4͔Βͷ͝ཁ
༧εςʔλεͰνέοτͷ ༏ઌ͚ͮΛ͍ͨ͠ʂ
w ༧γεςϜͰදݱ͞ΕΔεςʔλεΛجʹɺ͓ ͍߹Θͤͷ༏ઌΛܾఆ͍ͨ͠ w ࡏதͷ͓٬༷Λ༏ઌͯ͠ରԠΛ͍ͨ͠ w νέοτҰཡͰ͖Δ͚ͩϦΞϧλΠϜͰฒͼସ ͍͑ͨ νέοτͷ༏ઌ͚ͮ
͜͏͍͏ײ͡ͰͰ͖·ͤΜ͔ͶʔʜCZ$4
ͳΜͱ͔͠·͠ΐ͏ʂ
χΞϦΞϧλΠϜ ࿈ܞγεςϜͷ։ൃ
χΞϦΞϧλΠϜʜ
$MPVE4QBOOFS$IBOHF4USFBNT
w $MPVE4QBOOFSσʔλϕʔεͷૠೖɺมߋɺআ ͷใΛχΞϦΞϧλΠϜͰετϦʔϛϯάͰ͖Δ w มߋετϦʔϜ%BUB fl PX,BGLBΛհͯ͠ #JH2VFSZ$MPVE1VC4VCͳͲͷσʔλγϯ ΫసૹͰ͖Δ w
%BUB fl PXΛհͯ͠$MPVE1VC4VCసૹ͢Δ ͜ͱʹ͠·ͨ͠ $MPVE4QBOOFS$IBOHF4USFBNT
#PPLJOHTςʔϒϧͷ4UBUVTΧϥϜΛࢹ CREATE CHANGE STREAM BookingsTableStatusStream FOR Bookings(Status);
%BUB fl PXͷઃఆͦ͠͏ʜ
HJUIVCDPNNFSDBSJ%BUB fl PX5FNQMBUF
w %BUB fl PXʹඞཁͳ+BWBͷίʔυΛॻ͔ͣʹઃఆ ϑΝΠϧͷΈΛهड़͢Δ͜ͱͰɺύΠϓϥΠϯͷߏ ங͕Մೳ w ઃఆ+40/ϑΝΠϧʹͳ͍ͬͯΔ w *O0VUΛࢦఆ͢Δඞཁ͕͋Δɻ*O4QBOOFS
$IBOHF4USFBNTͰ0VUΛ1VC4VCʹͨ͠ w *O4PVSDFT 0VU4JOLT %BUB fl PX5FNQMBUF
%BUB fl PX5FNQMBUFͷઃఆ
1VC4VCͷϖΠϩʔυʢҰ෦ʣ { // ..., "mods": [ { "keysJson": "{\"ID\":\"dcc5423e-09ab-4ff1-8e0d-c0fb299215e0\"}", "oldValuesJson":
"{\"Status\":\"Tentative\"}", "newValuesJson": "{\"Status\":\"Booked\"}" } ], "modType": "UPDATE", "valueCaptureType": "OLD_AND_NEW_VALUES", // ... }
ϖΠϩʔυΛجʹ;FOEFTL ͷνέοτΛߋ৽͢Δ
1VC4VCˠ'VODUJPOT
w αʔόʔίϯςφʹΑΔཧͳ͠ͰΫϥυ্Ͱ ίʔυΛ࣮ߦͰ͖Δ w $MPVE1VC4VCͷΠϕϯτΛτϦΨʔͱ࣮ͯ͠ߦ ͕Մೳ w ϦΫΤετͷத$MPVE1VC4VCͷϖΠϩʔ υʹͳΔ $MPVE'VODUJPOT
w *%Λجʹ;FOEFTLνέοτΛݕࡧ w ݟ͔ͭͬͨνέοτʹ͋Δɺ༧εςʔλεͷν έοτϑΟʔϧυΛߋ৽͢Δ w ظ͢Δߋ৽ݩͷεςʔλε͕ҟͳΕແࢹ͢Δ w νέοτϑΟʔϧυʹ͕ଘࡏ͠ͳ͚Ε৽نͰ༧ εςʔλεΛՃ͢Δ
ϩδοΫ
࠷ऴతͳΞʔΩςΫνϟ
͝ཁղܾͰ͖ͨΜͰ͔͢ʁ
خ͍͕͍ͬ͠ͺ͍ʂ
ҰॹʹࣗಈԽ͍ͯ͘͠ ؒΛืू͍ͯ͠·͢ʂ