狂気への道
ソフトウェア開発における「狂気への道」とは、技術的負債や複雑性が積み重なり、プロジェクトが制御不能に陥る現象を指す。本記事では、シンプルさを保ち、意図的に設計することで、この悪循環を回避する方法について考察する。
背景メモ
Brandur Leong(ブランドゥル・リョン)が隔週で発行する技術系ニュースレター「Nanoglyphs」の第29号。主題は、著者が自社(Stripe/Ferret)のPostgreSQLデータベース移行で経験した「狂気の道」——論理レプリケーションとトリガーベースの二重書き込みを組み合わせた手法。シームレスな移行を目指すほど運用負荷が増大し、結局は単純なダウンタイム移行に回帰した苦い教訓が語られる。PostgreSQLの論理レプリケーションはバージョン10で実用化、パブリッシュ/サブスクライブ方式でテーブル単位の同期が可能だが、DDL変更の伝播や競合解決に制約が多い。記事は、高度な技術スタックでも「複雑性は敵」という原理を再確認させる内容として、SREやデータベース管理者(DBA)の間で話題を呼んだ。