In Camel the message body can be of any types. Some types are safely readable multiple times, and therefore do not 'suffer' from becoming 'empty'.
A number of Camel components supports and use streaming types out of the box. For example the HTTP related components, and CXF etc.
Camel offers a functionality Stream caching; that caches the stream, so it can be re-readable. By enabling this cache, the message body