[id='storage_formats_client_interop-{context}']
= Cache Encoding and Client Interoperability
The encoding that you use for your data affects client interoperability and
capabilities such as {brandname} Search.

.Protobuf Format
[%header,cols=2*]
|===
2+| Store data in Protobuf format to use it with...
| {brandname} Console
| Yes
| REST clients
| Yes
| Java Hot Rod clients
| Yes
| Non-Java Hot Rod clients
| Yes
| {brandname} Search
| Yes
| Custom Java objects
| Yes
|===

.Text-Based Format
[%header,cols=2*]
|===
2+| Store data in a text-based format to use it with...
| {brandname} Console
| Yes
| REST clients
| Yes
| Java Hot Rod clients
| Yes
| Non-Java Hot Rod clients
| Yes
| {brandname} Search
| No
| Custom Java objects
| No
|===

.Marshalled Java Objects
[%header,cols=2*]
|===
2+| Marshalled Java objects are compatible with...
| {brandname} Console
| No
| REST clients
| Yes
| Java Hot Rod clients
| Yes
| Non-Java Hot Rod clients
| No
| {brandname} Search
| No
|===

.Unmarshalled Java Objects
[%header,cols=2*]
|===
2+| Plain Old Java Objects (POJOs) are not recommended but compatible with...
| {brandname} Console
| No
| REST clients
| Yes
| Java Hot Rod clients
| Yes
| Non-Java Hot Rod clients
| No
| {brandname} Search
| Yes. However, you must annotate entities to search with POJOs and make your classes available to {brandname} Server.
| Custom Java objects
| Yes
|===

.Reference

* link:{dev_docs}#configuring_cache_encoding-data[Configuring Encoding for {brandname} Caches]
* link:{dev_docs}#data_transcoding[Transcoders and Data Conversion]
* link:{dev_docs}#data_encoding[Data Encoding]
