The bundle aggregation module provides an alternative solution to the core
JavaScript and CSS aggregation feature usable for high traffic sites. The intent
is to generate the aggregated bundles without waiting for locks or generating
high amount of disk writes while still serving all necessary files for the
visitors.

The module is building aggregated bundles on queue processing to avoid heavy disk writing on the webheads. While a bundle is being regenerated and an old bundle exists for the page then it will be served for the visitor. If a file is missing from a bundle then it will be attached to the visited page while the bundle gets updated so visitors are not going to see unstyled pages. The pages are not waiting for locks either while a bundle is being queued up so they will not pile up eating up memory and / or database connections.

To be able to serve old bundles while they are being regenerated the bundles are identified by page path and the various CSS and JS group parameters. This could lead to duplicated bundles, but this is a compromise to be able achieve predictibility.

Currently a changed CSS/JS file does not result in an automatically queued bundle, the easiest is to increase the bundle version number on the settings page to get the changes applied.

The module's feature can be tested without affecting existing aggregation functionality. This is also lets site admins to queue up bundles ahead of time so when the feature gets activated the visitors can be served with already existing bundles.

If the site has several cache instances the module provides a feature to distribute the cache request load to local cache instances.

JavaScript minification can be achieved by modifying the javaScript files with hook_bundle_aggregation_js_alter.

Please see the README.txt for further information.

This module was sponsored by Examiner.com.

Project Information

Downloads