YAPC::Japan Tokyo 2019でメッセージングプロトコルについての発表をしてきました。

表題の通りですが、昨日1月26日に浅草橋ヒューリックホールで行われたYAPC::Tokyoにて発表をしてきました。

これが資料です。といきなり貼ってしまいところですが、そのまえに注釈を加えたく。

自分の発表は、その内容から、それを見た人の技術選定に影響を与えてしまう可能性のあるものでした。そのため、特に注意した部分があります。

例えば「この技術はオワコンなので使うべきではない」というような表現をしないし、聴衆にもそういう印象を与えない、ということです。

「レッテル貼り」「早すぎる一般化」といった類のものですね。

技術選定はすべからく、

  • (1) 自身の案件を精査する
  • (2) 関連技術(プロトコル、実装、エコシステム、コミュニティなどなど)をよく知る。
  • (3)自分のチーム、組織を鑑みる。
  • (4)その上でマッチする技術を検討する
  • (5)最終的な決断を行う

というような形であるべきと思います。しかし現実的には、一度やった経験がなければ(2)の関連技術の知識が無い状態からチャレンジを始めなければなりません。

そこで様々なドキュメントを通して学習したり、あるいはコンサルを雇ってアドバイスをもらったりします。社内での仕組みとして解決するならプチR&Dのような部隊を作る、という手もあります。そして、今回のようなカンファレンスでの発表を参考にする、という事もあるわけです。

なので、発表者としての自分の仕事は(2)を提供することです。決して一足飛びに(5)に行くことはありません。案件や組織を知らなければ答えは出せません。

「この技術を使うべきだ」「あるいは使うべきではない」というような断定は基本的にはしない、する場合は「もしあなたの案件がこういうものであるならば」「あなたの組織にこういう人材がいるならば」と言った条件を可能な限り丁寧に説明する。ということで、とにかく主語を大きくしない、早すぎる一般化はしないという点には気を付けました。

「レッテル貼り」にも気を配りました。

「これはレガシーだからいらない」と「レガシー」というレッテルを貼って終わるのではなく、「時間が経つことで、何がどう変わったか、それが今回のテーマにどう影響をもたらしたか」というように、出来るだけ丁寧に伝わるように心がけたつもりです。一例を挙げます。

  • 最初の仕様が作られたのが98年
  • 20年経過している。当時と違う事がたくさんある。
  • 例えばスマホの普及
  • 皆がスマホを常に持ち歩いている。
  • スマホの通知システムもある
  • メッセージを送るとき、相手がオンラインかどうかというのを気にしない場合が多い
  • そういうサービスならば、プレゼンス管理機能の重要性は低い
  • 重要でないならば、削ってしまえば、プロダクトはシンプルになり、コストも削れる

といった感じです。

また、後半部分では様々なキーワードの対比を挙げました。これが(1)の案件の分析の助けになれば幸いです。この部分は若干雑になってしまったと反省するところです。とは言っても時間の制限があり、どうしようもないところではありました。ストレージ戦略、分散設計、E2EE, WebRTC連動など、ではこれらを具体的にどうするか、という話は個々のテーマだけで長時間のセッションになりえるものですし。これらの詳細はまた別の機会に。

以上の点に留意した上で、以下の資料をご査収いただければと思います。

最後になりますが、運営に携わった皆様、有難うございました。また全ての参加者の皆様もお疲れ様でした。