...
For general details of v3 messaging API, see also MessagingAPIRefactoring.
v2 made use of a statically defined hierarchy of message context subtypes to expose various properties related to message processing. v3 uses a more flexible design based around the notion of contexts which expose class-indexed (and therefore type-safe) subcontexts. The actual nature and use of message contexts for various message processing use cases is not dictated by the fundamental API. Each processing case can use the contexts and abstractions appropriate for its needs.
...