To select the right plug-in type for the job is an art, rather than a science. The following table suggests example uses for documented plug-in types.
Table 1–2 Plug-In Example Uses by Type| Plug-In Type | Example Uses | 
|---|---|
| Entry store-fetch | Encoding and decoding entire plug-in entries Auditing or logging each entry as the entry is written to disk | 
| Extended operation | Adding client services that are not available in LDAP v3 such as digital signatures in requests and responses | 
| Internal postoperation | Auditing results of internal operations initiated by another plug-in | 
| Internal preoperation | Preempting internal operations initiated by another plug-in | 
| Matching rule | Offering enhanced sounds-like matching for directory searches | 
| Object | Developing a plug-in that registers a group of other plug-ins with Directory Server | 
| Password check | Forcing new passwords to conform to corporate policy for password syntax | 
| Password storage scheme | Using a custom algorithm for password encryption instead of one of the algorithms supported by the standard product | 
| Postoperation | Associating alerts and alarms sent after particular operations Auditing changes to specific entries Performing cleanup after an operation | 
| Preoperation | Handling custom authentication methods external to the directory Forcing syntax checking for attribute values before adding or modifying an entry Adding attributes to or deleting attributes from a request Preprocessing client request content to translate requests from legacy applications Approving or rejecting the content of a client modification request before processing the request | 
The list of example uses is by no means exhaustive, but is instead intended to help you brainstorm solutions.