milter manager is an efficient way to manage multiple milters. You can register multiple milteres to milter managers and a milter session for milter manager is transfered to registered milters. Registered milter is called "child milter".
milter manager works as a proxy. milter manager looks like a milter from MTA side. milter manager looks like a MTA from child milter.
MTA, milter manager and child milter
milters can be managed by milter manager layer not MTA layer by the structure. milter manager has the following features that improve milter management:
1. milter detection feature
2. flexible milter apply feature
The former is for "reduce milter administration cost" advantage, the latter is for "combine milters flexibly" advantage.
We can use milters effectively by milter manager's those features.
Advantage: milter detection feature
milter manager embeds Ruby interpreter. Ruby is a real programming language that provides easy to read syntax and flexibility.
milter manager can configure milters more flexible than existing MTA because milter manager's configuration file is processed as a Ruby script. For example, milter manager can detect milters installed in your system and register it. It means that you can change each milter's configuration without updating milter manager's configuration.
Currently, Ubuntu (Debian) and FreeBSD are supported. If you want to use milters installed by package system (dpkg or ports), you don't need to change milter manager's configuration. If a milter is installed by package system and enabled, milter manager detects and uses it. See Install for more information.
There is a opinion that milter manager's configuration file has more difficult syntax than MTA's configuration file. As mentioned above, Ruby has easy to read syntax, it's not difficult in normal use. 
For example, here is a configuration for connection socket:
manager.connection_spec = "inet:10025@localhost"
It's almost same as Postfix's configuration syntax. ("item = value")
milter manager will also provide Web interface for configuration since the next release.
In MTA configuration, each milter always applies or not. It can't be done that a milter applies only when some conditions are true. milter manager has some check points in milter session. They can be used for it.
We can decide whether apply a milter or not by using S25R result by the feature.
We have effect about performance by introducing milter manager. But the effect is very small because milter manager works fast enough. So, it seems that the effect is none. milter manager will not be bottleneck.
Registered child milters to milter manager are applied only if some conditions are true. It means that child milters doesn't run if they aren't needed. But registered milters to MTA are always ran. Total processing time for milter system is almost same as milter system without milter manager or less than milter system without milter manager because the number of child milters to be ran are less than the number of whole milters.
· Ruby 1.8.5
What's New in This Release: [ read full changelog ]
· This version has fixed a broken libev backend with Ruby 1.9 and added max-pending-finished-session configuration settings for forcing the freeing of resouces immediately when the load average is high.
· This release also supports a reset API for resetting instance variables between multple transactions.