Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Null type - indicated via optional fields
  • Unions - you can get the equivalent with an object containing optional fields
  • Repeated modifier - this is equivalent to lists
  • Aliases - schemas copycat deals with are mostly generated automatically so aliases aren't really useful. They also introduce additional complexity in compatibility.
  • Complex data types like dates/times, geographic coordinates, UUIDs, or other specialized data types that some systems might support. These fall into a couple of different categories:
    • Difficult to address comprehensively in a way that will be broadly compatible and satisfies different requirements (e.g. dates/times with all the complexity of timezones, leap days/seconds, different levels of granularity, etc).
    • Too niche to take on the burden of supporting them generally (e.g., geographic coords). Leaving the representation up to the connector is ok.
    • Only adds semantics to an existing type (e.g., UUIDs are just byte[16]).

 

Schemas

Schemas only have to exist as in-memory data structures, but to give a simple example we'll use a JSON-like representation here:

...