1. A method for caching customized metadata documents for a metadata-driven software application, the method comprising: receiving a request for a customized version of a base metadata document, wherein the base metadata document defines one or more characteristics of at least a portion of the software application, and wherein the base metadata document is to be customized for a first user among a plurality of users of the software application; identifying a first customization for the base metadata document, wherein the first customization is determined to be applicable to the plurality of users; identifying a second customization for the base metadata document, wherein the second customization is determined to be applicable only to the first user; generating a first customized metadata document based on the first customization and the base metadata document; generating a second customized metadata document based on the first customized metadata document and the second customization; storing the first customized metadata document in a shared cache applicable to application sessions of the plurality of users; storing the second customized metadata document in a session cache applicable only to an application session of the first user; and returning the second customized metadata document.