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
通知マイクロサービスはアリ?ナシ?
Search
masaki toyoshima
January 20, 2022
Technology
700
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
通知マイクロサービスはアリ?ナシ?
設計 モデリングLT会 vol.3
masaki toyoshima
January 20, 2022
More Decks by masaki toyoshima
See All by masaki toyoshima
Alpakka with Cloud PubSub
mtoyoshi
0
170
Other Decks in Technology
See All in Technology
あるけみー式LTスライド作成術
alchemy1115
1
180
2026-09-11 【Snowflake World Tour Tokyo 2026】Snowflakeを起点に、AI Agentが自律稼働し続ける未来へ / Driving AI Agents with Snowflake
civitaspo
0
330
AIエージェントの自己改善をどう設計するか / How to Design Self-Improvement for AI Agents
22mi
0
110
生成AIのテナント制御とシャドーMCP対策 | AIを"止めずに"、情報を守る
yukun
0
150
Amazon S3 Tablesに全部任せてみた結果——コンパクション/スナップショット管理は本当に手放せるか
shigeruoda
1
470
GoにおけるFFIのこれまでとこれから
goccy
5
2.5k
全員がプロダクトへ向き合う組織を持続成長させるために——組織づくりのフライホイールと4象限 / The Flywheel Model and Four Quadrants for Organizational Design
hiro_torii
4
980
越境するなら専門用語を使うな高校校歌 / If you wanna cross border, you shouldn't use jargon
vtryo
0
120
研究開発部の紹介 / Sansan R&D Profile
sansan33
PRO
5
25k
消えない 動かない 効かない
yama3133
1
100
Deploying a Full-Stack Bun-Native Framework on Cloudflare Workers
7nohe
0
140
Snowflakeのコスト最適化を支えるアーキテクチャ設計
ktatsuya
1
1.5k
Featured
See All Featured
Making the Leap to Tech Lead
cromwellryan
135
10k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
240
Building the Perfect Custom Keyboard
takai
2
870
Designing Experiences People Love
moore
143
24k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
490
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
Balancing Empowerment & Direction
lara
6
1.3k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
410
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Transcript
通知マイクロサービスはアリ?ナシ? 設計 モデリングLT会 - Vol.3 2022.1.20
Who? @mtoyoshi SheepMedical株式会社CTO SheepMedical: ・創業5年目のスタートアップ ・アジア、インド、U.S.など9カ国進出 ・デロイトトーマツ主催テクノロジー企業成長率ランキング 2021 第3位 設計を学んだり議論したりするのが好きです
ときどき戒めのためにFizzBuzzEnterpriseEditionを眺めています
None
通知マイクロサービスはアリ?ナシ?
通知マイクロサービスはアリ?ナシ? きっかけはこちらを読んでいて ↓↓
通知マイクロサービスはアリ?ナシ? 自分の経験上、通知マイクロサービス はあまりうまくいかなかった 自分はナシ派 みなさんはいかがでしょう?? 「通知」サービス切り出しています か?
通知マイクロサービスはアリ?ナシ? !注意! この本は通知マイクロサービスを作る べきといった主張ではない
通知マイクロサービスはアリ?ナシ? 「通知」以外のマイクロサービスは業 務的な意味合いで切り分けられている (ように見える) 通知マイクロサービスは業務というよ りは機能の共通性で括りだされている ように・・・見える
通知マイクロサービスはアリ?ナシ? マイクロサービスアーキテクチャを採 用する場合、共有ライブラリ(やDRY原 則)はアンチパターンといわれる 詳しくはこちら → 「通知」は ”共有マイクロサービス”で あり同様に避けるべきでは?
通知マイクロサービスはアリ?ナシ? 通知といっても、様々: ・メール通知 ・スマホAppへプッシュ通知 ・Slackへ通知 ・Teamsへ通知 ・Chatworkへ通知 など。 また、当初要件はメール通知だけで あったとしても、増えがち。
通知マイクロサービスはアリ?ナシ? 依頼する側の影響を抑えるべく抽象層 が欲しくなる。 依頼する側は、「要はこんなメッセージ を通知したいんだ」 とだけ伝え、通知サービス内で「メール 通知」したり、「Slackに通知」したり。 Open-Closedの原則。
通知マイクロサービスはアリ?ナシ? 例えば、発送マイクロサービスが 荷物が発送されました。 1月21日 10:00に到着予定です。 とユーザーに通知したいとします。 加えて、日時を太字で強調したいとい う要件が来たとします。 どうする?
通知マイクロサービスはアリ?ナシ? 改めて通知マイクロサービスについて 考えてみる。 位置づけ的にも、通知サービスが発送 サービス固有のことを知っていたり依 存したりすることはないはず。 基本的には依頼されたことを粛々とや ることになるだろう。 (やはり共有ライブラリっぽい)
通知マイクロサービスはアリ?ナシ? ということは、発送サービスは ・通知したいメッセージ内容 ・どこを太字にしたいかの指示 を指示してもらう必要がある。
通知マイクロサービスはアリ?ナシ? ※なお、メッセージ内容は通知マイク ロサービスが持つ、という案も。 ただ「マイクロサービス側が持つデー タの値で文面変えたい」という要件が 来たときに双方向依存が起きたりしが ち。 自分で判断して送りたいメッセージ文 面を渡した方が良いと考える。
通知マイクロサービスはアリ?ナシ? 最終的に太字にするには ・HTMLメールなら<B>を使用 ・Slackなら*を使用 しかし依頼側は抽象層に合ったレベル 感で太字を指示する必要がある。 メタ修飾子の必要性。
通知マイクロサービスはアリ?ナシ? ・・・ただし、正直面倒くさい。 その結果、発送サービスからの依頼 文における日付箇所を太字にすること を、通知サービスが(指示がないのに なぜか)知っているプログラムになりが ち。
通知マイクロサービスはアリ?ナシ? いわゆる、 Leaky Abstraction
通知マイクロサービスはアリ?ナシ? 他にも、 Aマイクロサービスは ・「メール通知」 ・「スマホアプリプッシュ通知」 Bマイクロサービスは ・「メール通知」 ・「スマホアプリプッシュ通知」 ・「Slack通知」 などサービス毎に通知先が変わるか
もしれない。Leaky Abstraction!
通知マイクロサービスはアリ?ナシ? そういったことを考慮すると、各マイク ロサービスが自分で通知するのが良 いのではないか。 機能共通型のマイクロサービスの独 立性を担保することは難しい。 (自分の設計力が足りていない可能性 も) ナシ
通知マイクロサービスはアリ?ナシ? なお、「注文する」API(ユースケース) の処理内で様々の通知処理もしてしま うのはやりすぎでは。 イベント駆動にすることで後続処理とし て分割できる。 ①OrderedEventをpublish ②自身で①のイベントをsubscribe ③各種通知処理が行われる ナシ
通知マイクロサービスはアリ?ナシ? なお、、、 ・土日は通知を受け取らない ・メール通知は受け取らない といった通知の仕方自体の仕様が複 雑だったりすると、通知マイクロサービ スがほしくなったり・・・ しそう(汗
ご清聴ありがとうございました