Cross cutting components implement logic to provide common functions that span layers and tiers in your application. Typical functions include: authentication, authorization, caching, communication, error handling, exception logging, instrumentation and validation.