コアはドメインや技術に依存しないビルディングブロックで,リストやケースクラス,アクションといった汎用ビルドブロックを含んでいる。技術的な概念,例えばRESTやデータベースといったものが含まれることは決してない。
ドメインとは,すべてのビジネスロジックが,そのドメイン用のユビキタスな言語を使って命名されたクラスやメソッドとして存在する場所である。すべてのビジネスロジックをドメイン内に配置して,APIを介してドメインをコントロールするようにすれば,ビジネスロジックを損なうことなくすべての技術的事項を外部に取り出して,アプリケーションをポータブルにすることが可能になる。
APIはドメインの用語とオブジェクトを使用して,ドメインへのエントリポイントの役割をする。氏は,開発者が公開されたオブジェクトを使って基盤となるドメインにアクセスし,そのドメインを操作するような事態を回避するために,APIでは不変のオブジェクトのみを公開するべきである,と指摘する。APIは,氏がコードの記述を始める部分だ。メソッドのスケルトンと高レベルの機能テストをまず作成し,テストがパスするようにロジックを加えていくことで,ドメインの実装を進めていく。
インフラストラクチャは最外層にあり,データベースやユーザインターフェース,外部サービスなど,さまざまなテクノロジ用のアダプタを含んでいる。すべての内部層にアクセス可能だが,インフラストラクチャを実装するドメインインターフェースを例外として,オペレーションの大部分はAPIを介さなければならない。