こんにちは。エンジニアのりゅーそうです。
microCMSのエンジニアチームでは、毎週1時間ほど社内勉強会をしています。
有志のメンバーが話題を持ち寄って発表したり、適当にテーマを設けて雑談したり、、、とゆるく数年間運営されています。
今回はそんなmicroCMSの勉強会ではどんなことが話されているのか?1月(全4回)で話した内容を紹介したいと思います。
第1週
Node.js v24の機能紹介
新年一発目は私の発表です。
昨年末にLTSとなり、AWS Lambda側との兌換性も安定してきたと思われたのでNode.js v24系へのアップデートを行いました。
- using / await using
- RegExp.escape()
- http.optimizeEmptyRequests
などの新機能を紹介しました。using はmicroCMSで活用されているOpenTelemetry Spanのクリーンアップやタイマーのクリーンアップなどのコードを実際にどう書き替えられるかを紹介しました。
v24系のNode.jsではすぐに試せる最適化に関する様々な機能がリリースされているので、実際に検証していきたいと思います!
第2週
DynamoDBのRCU/WCU
寺田さんによるDynamoDBのRCU(Read Capacity Unit)とWCU(Write Capacity Unit)についての発表です。
具体的にDynamoDBにはどのような読み込み・書き込み制限があるのかをまとめてくださいました。
RCUの消費は、「強い整合性」読み取りでは4KBで1RCUを消費、「結果整合性」読み取りでは4KB * 2回で1RCUを消費と倍のRCUが必要になるので計算方法が異なるとのことでした。
WCUの消費は、RCUとは異なり1KBでの計算なのでシンプルになりますが、トランザクションを使用すると倍のWCUが消費されるとのこと。
それぞれ具体的な例を踏まえてつつRCU・WCUが消費されるのか説明していてわかりやすかったです!
それに加えてDynamoDBではオンデマンドモード・キャパシティモードをどう設計し、計算するのかという議論をメンバーとされていて、DynamoDBの設計は奥深いなと改めて感じました!
CodeRabbitくんに改めて向き合う
大西さんによるCoderabbitについての発表です。microCMSではコードレビューにCodeRabbitを使用しています。導入してから時間が経ったので改めて設定などを見直したのでその共有をしていただきました!
CodeRabbitでは「Adaptive learnings」でPRでのコメントから学習をしたりする場合があるそうです。ナレッジベースはディレクトリごとに構造化したりする改善を行い、項目ごとのトークン数は数千ほどにするなどの改善やレビュー全体の指摘事項は別のyamlファイルにまとめるなどのチームとしてのプラクティスを紹介してくださいました!
またASTレベルでのプロンプトやMCP・Toolsなどまだまだ使いどころがありそうなので、今後も様子を見ながら使いこなしていきたいと思いました。
【Backup Vol.2】microCMSでのDynamoDB バックアップ運用
北條さんによるmicroCMSのバックアップを実際にどのように改善し、運用しているのかの共有です!昨年にバックアップの概要について話をしていただきましたが、今回は実際にどのようにmicroCMSでは設定しているかという話を共有していただきました。
microCMSではPITRやAWS Backupなどなど複数の手法を駆使して、AWSのデータのバックアップを設計しているとのことです!
具体的な言及はここでは避けますが、それぞれの具体的な保持期間やその意図などを詳しく紹介していただきました。
バックアップ設計もSLAの観点やコストの観点でこれからも改善を続けていくそうです!
第3週
Node.jsの「Mitigating Denial-of-Service Vulnerability from Unrecoverable Stack Space Exhaustion for React, Next.js, and APM Users」を読む
私が https://nodejs.org/en/blog/vulnerability/january-2026-dos-mitigation-async-hooks についての解説を行いました。
- React Server Components
- Next.js
- APM(Open Telemetryなど)
なども内部で使用している AsyncLocalStorage での脆弱性を紹介しました。async_hooks が有効な状態でスタックオーバーフローが発生すると、Node.jsが即座に終了(exit code)し、try-catch で捕捉できないという内容でした。
メンバーの方々にも補足いただき
- そもそもスタックオーバーフローエラーを考慮できているか?
- スタックオーバーフローが発生しうるJSONデータの入力はあるか?
など話しあいました。
今回の脆弱性の内容もですが、我々のアプリケーションについても見直すきっかけになって良い議論ができてよかったと思います。
第4週
最近のAIエージェント周りの機能について整理
村松さんからAIエージェント周りの歴史について共有していただきました。Rules ->
MCP -> Modes・Sub-agents -> HooksそしてSkillsという変遷を解説していただきとても参考になりました。
MCPサーバーでのコンテキストの肥大化の問題、スコープを限定し、その問題を解決をするModes・Sub-agentsからさらにその信頼性を高めるためのHooksという流れで進化しているそうです。
今後RulesとSkills以外はAIエージェント側が内包していくようになるので、使用側はこのStatic Context(プロンプト)としてのRulesと、Dynamic Context(コード)としてのSkillsを主に意識して活用していくようになるという意見を紹介していました。
サーバサイドのパフォーマンスチューニングの本を読んだのでシェア
「達人が教えるWebパフォーマンスチューニング〜ISUCONから学ぶ高速化の実践」を読んだ感想を寺田さんがシェアしてくださいました。
- いきなり手を動かさない
- 推測せず計測する
- 対策は一つずつ効果を検証する
というパフォーマンスチューニングを行う上での重要な考え方やボトルネックを対処する重要性、特定・対処方法などをまとめていただきました。
計測とモニタリング・負荷試験など、愚直な計測・検証が大事だと改めて感じました!
2026年1月も様々なテーマで週に1回わいわい話しながら学べてよかったです。今年もゆるく続けていきたいと思います。



