OSGi is an open specification that defines a modular system and service platform for Java applications. It promotes building applications from loosely coupled and independently versioned bundles that can be dynamically installed, started, stopped, updated, or uninstalled without requiring a reboot. The OSGi specification is maturing for use on the server side, with features being added to support enterprise applications. While tooling is still developing, OSGi allows for robust, high availability applications through clear componentization and hot deployment of bundles.