2021年の5つの文章

本に限らない。

マイクロサービスパターン

2021年の9月から新しいチームに移り、立ち上がりからマイクロサービスの設計を行っている。
2018年の12月頃からバックエンドエンジニアになって、2019年からは大規模で急成長しているサービスの開発機会に恵まれた。
今年はそれまでの経験を活かしてシステムを作るというチャレンジができている。

「サーガによるトランザクション管理」が最も重要な章になった。
saga patternで例示されている、「order service」に近いサービスを設計、開発しており、多数のMS間のデータ整合性を担保するための方法を模索している。
現状は、厳密にOrchestration-based sagaを採用しているわけではなく、state patternを使って管理している。

多数のMSの立ち上がりを行っていることもあり、「マイクロサービスアーキテクチャにおけるビジネスロジックの設計」を読んで、clean architectureという概念を改めて学び、活かしている。徐々に、この手の設計の有用性が体でわかってきている。

エンジニアリング組織論への招待

それぞれの作業(チケットを切る、MTGをする、planning等)について、よりその意義に自覚的になるために、事あるごとに読み返した。
この本を中心に、HIGH OUTPUT MANAGEMENTや、アートオブプロジェクトマネジメントもよく読んでいる。
個人的に組織について刺さる言葉は、「共通認識ではなく創造へ」という考え方で、これを中心に据えると色々なことが楽になる気がする。

Site Reliability Engineering

2020年7月頃に読み、ずっと参考している本。
2021年7月から、非常に運用難易度が高いサービスのリリース、及び運用を担当し、運用にかかるリソースの試算(正確な試算が難しい領域だと思う)や、エンジニアリングによる自動化を図った。

前職はずっと大規模な会計システムの保守をしていたわけで、「今あるものを保つ」ことの難しさはかなり知っている方だと思う。
最悪の事故が起こるまで人は何をしていたかでも思ったことだけど、失敗の復旧にはものすごい労力がかかるので、過剰と言えるくらいの自動化、予防、想定が必要になる。このような動きは直感に反することが多い。
人はうまく行っているときは、先に進みたいとばっかり思って、不足自体を想像するのは難しい。

ということを当時書いていたけど、キャリアの中でも運用・保守を長くやってきて、経験は蓄積している。マニュアルではなくシステム化、という全てに共通するエッセンスをこの本は教えてくれている。

マスタリング・イーサリアム

事業検討のため、色々あってtestnetでEthereum validatorになっていた。

「bitcoinとどう違うのか?」という軸でしか理解できないのだけど、5章から10章あたりをよく読んでそのあたりの疑問を潰そうとした。
アカウントベースとなったことで様々な特徴が出てきている、程度の理解にとどまっている。やっぱりあまり興味が出ない。

lnbook

すべてのページを印刷して、英語で頑張って読んでいるけど、ちょうど最近、Mastering the Lightning Networkとして出版された。
本来であれば、一番力を入れて学び続けたい部分、っていうのがLNだと思っているのだけど、今年は停滞していた、というのが正直なところだと思う。
二年くらい前から妄想していたLightning Dev Kitも出たので、lnbookを片手に作っていきたいと今は思っている。

ほか

mRNAワクチンの衝撃を読んで、まさに衝撃を受けて、他分野に比べてソフトウェア単体での存在感が小さくなっていく空気を感じている。