Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Momento Topics使ってみた
Search
bohnen
September 14, 2023
Programming
230
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Momento Topics使ってみた
bohnen
September 14, 2023
More Decks by bohnen
See All by bohnen
Momento会 #9 TiDB ServerlessとMomentoの話
bohnen
0
110
Cloud on the beach - いろいろな雲のかたち
bohnen
1
110
TiUG #1 TiDB overview and update
bohnen
0
310
みんなのPython勉強会: 最近のDB事情 TiDB Serverlessの紹介
bohnen
1
900
Postman Tokyo Meetup - Serverless Integration with Flows
bohnen
2
270
Serverless Meetup Re:boot 福岡 TiDB Serverlessの紹介
bohnen
1
190
Serverless Meetup Fukuoka Workshop TiDB
bohnen
0
120
TiUG #0 発表資料: TiDBの紹介と最新情報
bohnen
0
310
Momento会 #8 Serverless with TiDB/Momento/Postman
bohnen
0
110
Other Decks in Programming
See All in Programming
AIエージェント時代のコードレビューを設計する
nogu66
6
2.6k
マイコン向けの軽量Ruby「PicoRuby」で各種デバイスを制御するネイティブアプリの実現手法
bash0c7
0
360
【高い買い物LT会】初任給で話題の国産フィジカルAIを買った話
akagami
PRO
0
150
AgentCore CLI で進化した AWS での AI エージェントの作り方 : 必要な機能を必要な時に
icoxfog417
PRO
3
320
20260828_品質と開発生産性を両立させる、AI時代のE2Eテストの考え方
magicpod
0
200
Jetpack Compose メカニズム
skydoves
0
140
新人はどこまで自力でやり、どこからAIに頼るべきか/エンジニア育成に向き合う_先輩たちの悩みと知見共有会
toppan_digital_dev
1
610
高専キャリア LT 発表内容
crysta1221
6
5.7k
JPUG勉強会 OSSデータベースの内部構造を理解しよう(第2回)
oga5
0
120
業務時間外もAIに働いてもらう話
colorful12
3
10k
Webの地図
yosuke_furukawa
PRO
6
4.3k
XHTMLが残したもの
yosuke_furukawa
PRO
2
710
Featured
See All Featured
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.9k
SEO for Brand Visibility & Recognition
aleyda
0
4.7k
Navigating Team Friction
lara
192
16k
Code Review Best Practice
trishagee
74
20k
Odyssey Design
rkendrick25
PRO
2
800
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.8k
Amusing Abliteration
ianozsvald
1
290
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
530
Scaling GitHub
holman
464
140k
Transcript
Momento Topics 使ってみた bohnen
そもそもTopicsと ? • いわゆる Pub-Sub 型 メッセージチャネル 一つで、疎結合・非同期なシステム間連 携を実現する •
一つ メッセージを複数 宛先が読み取る ことが可能 • AWSだとSNSとかが該当 • 類似サービス ◦ JMS互換 キュー製品すべて ◦ Redis pub-sub ◦ Kafka ◦ SNS (AWS) ◦ EventBridge (AWS) エンタープライズアーキテクチャパターン より
金融業界で Topics 間に入っているKinesisがシ ステム間 連携を担ってい る。 ここで ポイント 、 •
データ みに依存し た処理(関数型っぽ い) • 並列に処理が実行で きる。例え 株ならそ れぞれ 銘柄毎 • 処理がしょっちゅう増 える・変わる。いわゆ るマイクロサービス AWS金融リファレンスアーキテクチャより
サンプルプログラム(Momento FX!) Rate Publisher Order Executor (本来 )LP 価格に利益を乗せて顧客に提供する 価格
topicsを使ってリアルタイ ムに同報通信 注文 RESTエンドポイントを呼び 出し 注文が実勢価格よりも一定以上 乖離しているとnothing(失効) 実際 LPに投げる LP(Liquidity Provider) 業者向けに価格を提供して、 そ 値段で注文を受け付け る業者 金融機関や取引所など
デモ
Rate Publisher 基本これだけ • TopicClient 初期化 • Publish 今回 websocketでレートを提供している
bitflyer lightning APIを使って、レートを取 得する度にpublishしている (同時に、最新価格を cacheにも保存し、 Execution時に参照する) ※ 全然関係ないけどレート 配信頻度低す ぎない...?
Token API Server Topicsにブラウザから直接アクセスするため に必要な一時トークンを発行する API Chatアプリ サンプルからコードを拝借 Next.js わからなかった
で使う を諦め、 fastify スタンドアロンサーバとして実装して います。 ここで 接続してきた人に 誰でもトークンを 返していますが、Chatアプリサンプル ように 認証済み 人に み返す がベターでしょ う。(認証APIも課金対象な かな?)
UI - トークン 取得 Chatアプリ サンプルからコードを拝借 先ほど REST APIからトークンを取得して、 CredentialProviderを初期化。
ここからtopicClientが取得できる ※変数 命名が変だったり、 cache使ってな い で不要だったり余計なも があります。
UI - Topicから 取得 topicClientを使って、topicにsubscribeしま す。こ ときにコールバック関数を渡して、そ れが価格が届いた時 処理になります。 UI側で
useEffect内でtopicにsubscribeし、 コールバックでStateを変更して画面に反映し ています。
使ってみて • Web-sdk 楽。間にいちいちwebsocket サーバを立てる必要がない で、テ ストも簡単(クライアントjavascriptだけ書いてでテストできる) • 実務で利用する場合 同時接続数を気にする必要がある。これが万単位まで
できるとかなり便利な で ?! • 一時トークン 発行がちょっと手間。Signed URLとかでAPIなしで初期化できる ようにならないかなあ • Typescriptサポートとcopilotが強力すぎて開発体験が爆上がり • レイテンシ 往復20ms位出る で気になる場合 AWS/GCP内でクライアント を動かした方がよいかもしれない。