「Adam Culp Special Talk Event "Hypermedia!"」参加記録

こちらの勉強会に参加しました。 connpass.com

会場を提供いただいた,BASE株式会社さん,スポンサーのParty Hard Incさん,Bengo4.com, Inc.さん ありがとうございます。

スピーカーの@adamculpさん, @mackstarさん, @koriymさん,@hidenorigotoさん。ありがとうございます。

@mackstarさんとは2年ぶりの再会でした。 hanahirodev.hatenablog.com

当日のタイムラインは以下から。 twitter.com

Talk #1: Doing the DDD thing across Micro-Frontends, Micro-Services and everything In-Between

@mackstarさんによるDAZN社におけるDDDとマイクロサービスの取り組みについてのお話です。

驚くことに設立から3年で世界中に開発拠点をもち,600人のエンジニアがいる巨大な組織だそう。 以下の映像とエンジニアブログが参考になりそうです。 www.youtube.com

medium.com


スポーツ中継配信というドメインの特徴として,

  • 大きな試合の1時間前からユーザー登録のトラフィックが集中
  • 試合の時間帯だけアクセスが集中

加えて

  • 課金のトランザクションに3rd-partyのサービスを使っているためAPIの呼び出しに制限がある(単位時間あたりのリクエスト制限と思います)
  • 支払いをごまかそうとしてくる輩がいる

こうした問題に対してMicro Frontend, DDD, Single-SPA, GraphQL, イベントストーミングといった手法を用いて,ドメインごとに責務の分かれたチームがエンジニアリングに取り組んでいるということが紹介されました。 とくにMicro Frontendは,(モノリスリポジトリにするか議論はあったそうですが)コンポーネントごとにリポジトリも,デプロイメント・パイプラインも,チームも完全に分かれているとのことで興味深かったです。

Micro Frontendについては,以下の記事も参考になりそうです。 martinfowler.com

Discussion: DDD x Microservice

@mackstarさんと@hidenorigotoさんの対談です。

開発組織とビジネスサイドとの役割や関わり方についての話が盛り上がりました。 設計としての全体像はアーキテクトが責任を持つそうですが,そういう立場の人は得てして忙しすぎて手が回らなくなってしまって,チームが困ることも実際には起きているそうです。 そうした問題に対してワーキンググループを立ち上げて,解決に取り組むという活動を最近はじめたとのこと。

ProductOwnerがBacklogに責任を持つこと,チームの自治(autonomous)を重要視しているなど,AgileProcessが重要という話もありました。

Talk #2: Hypermedia!

@adamculpさんのHypermediaについてのトークです。 APIとホームページを対比しながら,Hypermediaとは何かについての再確認と,HATEOAS ,そしてHALについて紹介がありました。 また,HypermediaのリンクについてのPSR-13も紹介されました。PSRですが,言語に関係なくAPI開発者は読むべきという発言が印象的でした。

REST APIドキュメンテーションが簡単にできるGUIIDEの紹介もありました。 www.youtube.com

HTTPの純粋主義者(purist)からすると,RESTで苦労する開発者はRESTをちゃんと使っていないかHTTPの原則を理解していない。 という言葉は重かったです。

LT #1: Hypermedia Doc

@koriymさんのLTです。

REATにおいてHATEOAS(Hypermedia)と並んでもう一つ重要な「共通理解」を助けるためのドキュメントについてのLTです。 Application State DialogをDot言語で記述して,開発に関わる全てのひと(ProductOwnerやデザイナも含む)との共通理解を構築する方法の紹介がありました。

またダイアグラムと辞書をALPSに沿って記載する例の紹介もありました。 alps.io