From discussion of
Caching of conversion of schemas. In the JSON implementation we're including, we're probably being pretty wasteful right now since every record has to translate both the schema and data to JSON. We should definitely be doing some caching here. I think an LRU using an IdentityHashMap should be fine. However, this does assume that connectors are good about reusing schemas (defining them up front, or if they are dynamic they should have their own cache of schemas and be able to detect when they can be reused).