OpenLDAP
OpenLDAPサーバ (slapd) は歴史的経緯から、ネットワーク処理とプロトコル処理を受け持つフロントエンドと、データストレージを扱うバックエンドに分かれている。この設計は、1996年に書かれたオリジナルのミシガン大学のコードの特徴であり、その後のすべてのOpenLDAPリリースで引き継がれている。 モジュラー構造になっており、バックエンドとしては通常のデータベースだけでなく様々なテクノロジーとのインタフェースを提供する多様なものが存在する。
なお、古いリリース (1.x) では、「バックエンド」と「データベース」はほぼ同義に使われていた。正確には、「バックエンド」はストレージインタフェースのクラスであり、「データベース」はバックエンドのインスタンスの1つである。slapdサーバは同時に複数のバックエンドを使うことができ、同種のバックエンドの複数のインスタンス(例えば多数のデータベース)を同時に扱うこともできる。
バックエンドとオーバーレイは、最も一般的に使用される2つのモジュールタイプである。バックエンドは通常 slapd バイナリに組み込まれていたが、動的にロードモジュールとして組み込み可能。オーバーレイは、通常動的モジュールとして組み込まれる。さらに、slapd は、動的モジュールをサポートしている。新しいLDAPの構文、マッチングルール、制御、そして拡張操作を実装だけでなく、カスタムアクセス制御機能やパスワードハッシュ機能を実装できる。
OpenLDAP は、サン・マイクロシステムズや Netscape/Fedora/Red Hat が使っているプラグインアーキテクチャ SLAPI もサポートしている。最新版では、SLAPI フレームワークは slapd のオーバーレイ内で実装されている。Sun/Netscape/Fedora/Red Hat 向けに書かれたプラグインの多くは OpenLDAP 互換だが、OpenLDAP コミュニティでは SLAPI はほとんど使われていない。