Thin client protocol is schema-aware, but the known schema is thrown away on the server after deserialization, and Table API has to match it against schemas again.
SchemaAware interface can be used to preserve known schema when passing tuples to the Table API (see how TupleMarshallerImpl checks for SchemaAware).
Example: table.Upsert(Tuple t)
- Client: match user tuple to schema, serialize with schema version, send to server
- Server: read schema version, read tuple data, create Tuple, throw away schema version, pass to Table API
- Server: match tuple to schema