Code Generation & Versioning

Code Generation

The ObserveRTC schema generator creates type-safe language bindings from Avro schema definitions.

Repository: https://github.com/ObserveRTC/schemas

Generated Outputs

FormatDescription
TypeScript/JavaScriptType definitions and encoding/decoding utilities
SQL SchemasBigQuery, PostgreSQL, Redshift, ClickHouse table definitions
Protocol Buffers.proto files for cross-language serialization
CSV HeadersColumn definitions for data export
Avro SchemaJSON schema definitions

NPM Packages

  • @observertc/schemas - TypeScript type definitions
  • @observertc/samples-encoder - Binary encoding utilities
  • @observertc/samples-decoder - Binary decoding utilities

Usage

git clone https://github.com/ObserveRTC/schemas.git
cd schemas
npm install
npm run compile

Versioning

ObserveRTC schemas follow semantic versioning (SemVer) for compatibility management.

Version Strategy

Change TypeVersion BumpCompatibility
Field additionMinorForward compatible
Field removalMajorBreaking change
Type changeMajorBreaking change
DocumentationPatchNon-breaking

Current Version

Schema Version: 3.0.0

Migration

When upgrading between major versions:

  1. Review breaking changes in release notes
  2. Update type definitions
  3. Modify data processing logic for removed/changed fields
  4. Test with sample data
  5. Deploy incrementally

Compatibility

  • Forward compatibility: Newer readers can process older data
  • Backward compatibility: Older readers may not process newer optional fields
  • Schema evolution: New optional fields maintain compatibility