☕️

Azure Cosmos DB を使用してイベントソーシングを行う方法について英語で登壇しました。

2024/04/18に公開

株式会社ジェイテックジャパン CTOの高丘 @tomohisaです。2024年4月17日、MicrosoftのAzure Cosmos DBのエンジニアリングチームでPrincipal Product Manager を行っている、Sajeetharan @kokkisajeeさんが運営している、Coffee with Azure Cosmos DB英語で登壇をする機会をいただきました!

https://www.youtube.com/live/QAwZsBVgkv0?si=uWr3QKyQ9iBFS1U_

アーカイブが残っていますので、よろしければご覧ください。スライドは以下のものです。

https://speakerdeck.com/tomohisa/event-sourcing-and-azure-cosmos-db-using-sekiban-framework

登壇に至った経緯

今僕たちが開発している Sekiban - イベントソーシング・CQRSフレームワークは複数のデータベースをイベントの保存先として対応しているのですが、最初に開発して、現在でも一番社内でも使用ているのが、Azure Cosmos DBです。

https://azure.microsoft.com/ja-jp/products/cosmos-db

Azure Cosmos DB はAzure用にマイクロソフトが開発しているマネージドデータベースサービスで、独自のNoSQLに加えて、MongoDB、PostgreSQL、Cassandraなどの色々なインスタンスが提供されているのですが、全体として、分散システム、大量データに対応するための機能が実装されています。Sekibanでは、現時点てNoSQLインスタンス、PostgreSQLのインスタンスに対応しています。

ちょうど昨日、Azure Cosmos DB Conf 2024というイベントがあり、Cosmos DBのいろいろな使用法についての登壇が行われていました。

https://azurecosmosdb.github.io/azurecosmosdbconf/agenda.html

弊社ではSekibanフレームワークの普及のための登壇活動を最近行なっていて、特にグローバルの認知を高めたいと考えて、こちらのCosmos DB Conf 2024のCFPに申し込んでいました。

英語での登壇ですが、僕個人としては、アメリカに10年ほど住んでいますが、仕事では日本語で話すことが多いので、英語での技術登壇は経験ありませんでした。ただ、仕事でクライアントと英語のミーティングをすることはありますし、家族内では英語を話していますので、申し込んでみました。結果としてはCosmos DB Conf 2024の登壇は選ばれませんでした。

最近は日本語でオンラインの技術イベントに登壇するようにしていて、登壇ドリブンで技術を整理したり、LLMのオープンソースを作ったりしていて、話すこと自体は慣れていたのがよかったです。

Youtubeチャンネル運営者のSajeetharanさんは、Cosmos DBのエンジニアリングチームでCosmos DB Confの運営もしておられるようですので、おそらくですが、そこで興味を持って自身のYoutubeチャンネルに呼んでくださったのではないかと思います。

XのDMで参加してみませんかと2月頃に連絡があり、色々調整がすんで実現したのが今週でした。ちょうどCosmos DB Confの翌日にスケジュールされました。

話した内容

今回は、Sekibanフレームワークの基本の説明がメインで、もう一つのフォーカスするポイントはAzure Cosmos DBとイベントソーシングの親和性でした。

Sekibanフレームワークの説明に関しては、日本語で行った、OSCで話した内容をベースに作成しました。

https://zenn.dev/jtechjapan_pub/articles/a44d19e0d54ca6

日本語の登壇ではイベントソーシングのデータの保存が、将棋の棋譜のようであるという話をしたのですが、将棋といっても英語圏の方には伝わらないと思いましたので、チェスのノーテーションのようなものであるというように書き換えましたが、こちらは基本的に日本語の話を継承して作りました。

Azure Cosmos DBに関しては以下の3点を強調しました。

  • Cosmos DB の持つスケーラビリティ、レプリケーションなど
  • Cosmos DBにJSONで保存することのできることによる、フレキシビリティー
  • Cosmos DBの階層パーティション使用することにより、効率的にクエリを実装可能となる

これらの後に、実際にSekibanとCosmos DBを使用することにより、作ることのできるアプリケーションの実例をデモで紹介しました。

英語で登壇をしてみて

原稿を読んでいるわけではなく、各ページのポイントを口語で説明する形をとりました。(日本語でもそのスタイルで慣れているため)話している途中に言葉選びで迷ったのですが、終わった後に聞いてみたらまあまあクリアでわかりやすかったかなと思います。家族も技術用語がわからないながらも話し方自体はわかりやすかったと言ってくれました。Youtubeに文字起こしがあるのですが、固有名詞以外は大体理解されていたようなのでまあ良かったかなと思いました。

英語での登壇は申し込んで実現するまではなかなか時間がかかったのですが、やってみて良かったと感じました。ちょうど英語ブログも始めたところですので、英語でのブログ記事を書いたり、英語のイベントへの参加などもこれからより行なっていきたいと思います。

https://tomohisa.hashnode.dev

英語ブログはこちらになります。よろしければこちらもご覧ください

ジェイテックジャパンブログ

Discussion