棚卸し (2024–12)

選択と集中

V
4 min readDec 31, 2024

定期的にやるやつ。前書いたのが 2024–09 なので 3ヶ月でどうなったか。

Erlang/OTP

自社製品が Raft ベースの分散システムになった。ついに Erlang/OTP の真価が発揮されるときが来たかという気持ち。無事安定して稼働している。

Plumtree を利用した効率的な分散の仕組みなどもやりはじめて、本当に終わりが見えなくてとても楽しい。

Erlang/OTP で QUIC 実装をちまちまやってる。何度も書き直している。

何年やっても Erlang は飽きないし本当に、自分が作っていきたいパッケージミドルウェアソフトウェアにマッチしている。

TypeScirpt

Remix (や React) とは一旦距離を置いて、自社製品のブラウザ向け SDK やそのサンプルのメンテナンスをしている。

Vite と Playwright の組み合わせがとても良い。WebRTC はブラウザでしか動かない事もあり、試行錯誤している。E2E テストとサンプルは分けた方がいい。

MOQT (Media over QUIC Transport) でもブラウザ向けの SDK は TypeScript で書くことになると思うので、いい機会だからしっかり TypeScript を学んでいる。

Python

自社製品の E2E テストが pytest ベースということもあり、Python をよく書いている。

自社製品の Python SDK の中身は C++ ゴリゴリなのだが、サンプルやテストは Python でかく必要がある。 uv や ruff や mypy 、そして VS Code のおかげでかなり楽できてる。

何より pytest 本当に素晴らしい。

Raft/Plumtree

Raft 化したことで、スケールアウトができるようになったが、さらに負荷分散をするために Plumtree を導入して、うまくいっている。数万台でスケールする仕組みを実現していきたい。

将来的に Raft は時前ライブラリ切り替えたい。

WebRTC

8 年以上やってきてるのに、やることが全然終わらない。色々と細かいところを修正している。

WebRTC はまだまだやることがあり、終わる気配が無い。全く飽きてない。楽しい。 Twitch との仕事もとても楽しくやれている。

Media over QUIC Transport (MOQT)

正直、MOQT が今すぐ必要になるタイミングはほとんどないと考えている。ビジネス利用までの距離が遠すぎる。MOQT で騒いでる人たちはそもそも OBS と YouTube Live と Twitch が MOQT 採用していない事に皆気付くべき。

WebRTC RtpTransport が思った以上に早く来てしまったこともあり、まだまだ WebRTC 時代が続きそう。

とはいえ QUIC (HTTP/3 や WebTransport や MOQT) のサーバー自前実装はやっていく。もちろんフル Erlang/OTP で書いている。

ネイティブクライアントは Google の公開している libmoqt (C++) に乗っかっていくので、自分は手を出さない。libmoqt の何がイイって Chrome で利用される QUIC 実装と同じなのが良い、互換性で苦労しなくて良い。

DuckDB/DuckDB-Wasm

とにかく DuckDB/DuckDB-Wasm を使い倒している。ログ解析は本当に便利で、もう手放せない。

サービス用の可視化も DuckDB-Wasm をがっつり使い始めている。Code Mirror を利用してブラウザから SQL を実行できるようにしたりもし始めている。SQL 本当に便利。

E2E テスト

E2E テストにリソースを投資できるくらいにはなってきたので、pytest や Playwright を使った E2E テストを増やして行っている。pytest が万能なので、うまくコマンドライン系の E2E テストも開発していきたい。

テストランナーとしての pytest は本当に便利。

ドキュメント

Sphinx (reStructuredText) でもりもり書いてるが、そろそろ Markdown の世界に行くべきなのか悩んでいる。

まとめ

Erlang/OTP と Python と TypeScript をメインで頑張っている。Python は基本テストだけ、TypeScript はブラウザ向けだけ。ちょっと偏った使い方だが、とても便利に使っているし、知識も付いてきた。

2025 年も変わらず Erlang/OTP で主力製品を書き、Python で E2E テストを書き、TypeScript でブラウザ向け SDK を書いて行くことになりそう。

--

--

V
V

No responses yet