DJabberd is a high-performance, scalable, extensible Jabber/XMPP server framework. While it comes with an example server, it's really a set of classes for you to build your own Jabber server without understanding Jabber. Instead of working with XML and protocol-specific details, you subclass parts and work with sane objects and data structures and let DJabberd do all the ugly work.
Current status: 2007-05-08, been in production on LiveJournal, running "LJ Talk" for 8+ months now. Considered mature. Used by many other sites now too. Download the core from danga.com/dist/djabberd/, or from CPAN, where you can find complementary plugins as well. Subversion access available from here.
Consider DJabberd the mod_perl/qpsmtpd/Perlbal/Plagger of the XMPP world. Everything is a plugin. The framework lets you override the behavior of:
Or, if you're lazy, choose mix and match behaviors from other CPAN modules: mix LDAP auth with SQLite storage with LDAP roster-population, with Spread inter-node communication...
You can even have multiple plugins per hook, in any order. Also, rather than implementing the hooks directly, the framework comes with simple objects you can subclass which further eases the use of the async plugin system.
While implemented in Perl (which might dissuade you), DJabberd is written using the same event-based architecture that powers Perlbal, which pushes out billions of HTTP requests per month for LiveJournal.com. In detail, it:
Internode-communication lets you just scale out, providing both load balancing and high availability in your Jabber farm. Because good Jabber clients will quietly reconnect on TCP connection failure, you can even do rolling code upgrades without users noticing.
As an admin, you're free to choose which internode communication method to use or you can write your own, specific to your application (assuming you're integrating this into an application).
The DJabberd core aims to be fully XMPP 1.0 compliant, as well as supporting common pre-XMPP standards. To name the obvious ones, DJabberd supports: