Software Design

DB

マルチテナントのスキーマレベル分離をどのように実装するか?[マルチテナントアーキテクチャ]

現状のテナント分離構造「インスタンスレベル分離」私が関わっているプロダクトでは図のような「インスタンスレベル分離」というテナント分離構造になっています。具体的にはテナント毎にアプリケーションが別れており、DBクラスタ(SQL Server)...
Software Design

システム設計の基本を無料で学べるGithubリポジトリ[System Design Primer]の良い点・物足りない点

どんなサイトか?このサイトはシステム設計の基礎に関して包括的に解説をしています。扱っているトピックはパフォーマンス・スケーラビリティ・一貫性・データベース・キャッシュ・ネットワークなど幅広いです。初心者のエンジニアは自分が好きな領域に関して...
Software Design

変更が難しいものは、深く設計して、ゆっくりと実装する / 「ソフトウェアアーキテクトのための意思決定術」

はじめに「Done is better than nothingは正しいのか?」「Done is better than nothing」というネットミームがあります。このミームはマークザッカーバーグの画像と共に用いられることが多く、日本語...
Software Design

Strategyパターンで安全に外部メールサービスの移行を進める方法

はじめに今回はGOFのデザインパターンであるStrategyパターンを利用して、外部メールサービスを簡単に切り替えられるようにしました。背景仕事先では外部メールサービスとしてSendGridというサービスを利用していました。このサービスはt...