Closed
Description
- Data serialize used to need deal with schema evolution
- new program handle old data
- old program handle new data
Common use case of serialization/deserialization
- Marshal (the same language full stack)
- temporary data storing, quick prototype
- Type based safe marshal (the same language full stack)
- quick prototype does not need deal schema evolution
- challenge: deal with schema evolution
- Use IDL or not, most languages
construct don't have data migration in mind, either we make
heavy use of attribute annotations or introduce IDL
- Type based safe marshal with a requirement of how encoding works
- deal with schema evolution
- There are a few cases it is mandatory how a record should be encoded
- Arbitrary JSON decoding
- Use BuckleScript as client side language only
- JSON type provider could not handle complex cases