マイクロサービス
提唱者らは下記に述べる特性を挙げているがこれらは定義ではなく、すべての特性をもつ必要はないとしている。
サービスのコンポーネント化 - コンポーネントは独立して交換・更新可能なソフトウェアの単位である。
ビジネス中心組織 -開発運用チームは技術や開発工程によるチームではなく、ビジネスを中心に機能横断型のチームが編成されている。
プロジェクトではなくプロダクト - チームは開発完了とともに解散するプロジェクトモデルではなく、製品のライフサイクル全体に責任を持つ。
スマートエンドポイントとダムパイプ - メッセージ通信は軽量かつシンプルであること。エンドポイントに高い機能を持たせ、通信はダムパイプ(メッセージのルータとしてのみ動作する単純な機構)であること。
分散統治 - 各サービスは独立したチーム、開発言語、ツールでアプローチする。
分散データ管理 - 概念モデルに関する分散だけでなく、データストレージも分散(サービス間で独立)する。
インフラストラクチャの自動化 - テスト自動化/継続的デリバリー/継続的インテグレーションの導入
障害の設計 - 個々のサービスはいつでも失敗する可能性があるため、互いに障害を迅速に検出し、可能であれば自動的にサービスを復元できることが重要。
進化的な設計 - 頻繁に、迅速に、適切に制御されたソフトウェアの変更・廃止・構築を行うことができること。