The Cambria project is an exploration of how to manage changing data formats and schemas in a decentralized piece of software. We had Geoffrey Litt and Peter van Hardenberg present the project, in which they were also joined by Orion Henry.
The project is funded and operated by Ink & Switch, whose work on Local First Software we often reference. Cambria was in part inspired by the challenges involved with synchronizing data with these local first apps.
Enter Cambria: a Javascript/Typescript library for converting JSON data between related schemas, using lenses.
— FISSION (@FISSIONcodes) February 10, 2021
Translates all your data at run time, on the fly.https://t.co/nscje7zhqP pic.twitter.com/lahZ21usO7
The output of the project so far is an experimental Typescript library:
…for effectively managing schema change in distributed systems. It aims to allow developers to express relationships between schemas using bidirectional lenses, and to avoid mixing compatibility code into application logic.
Project Cambria: Schema evolution in distributed systems with edit lenses
Thank you to Geoffrey and Peter for presenting! You can follow Geoffrey @geoffreylitt and Peter @pvh on Twitter.
Speaking of Twitter, we had a great set of attendees and captured some excellent quotes and comments along the way. The Twitter handles that were shared are available in the forum chat log.
Public schemas have the general property of being either too specific for your use case or too general for anyone's use case.
— Jess Martin (@jessmartin) February 10, 2021
-@pvh
🤣
"A v1 app can read a v1000 app data" @pvh
— FISSION (@FISSIONcodes) February 10, 2021
"Everyone writes their native format and leaves clues on how to read it"
Rumours about a sea shanty re-mix of some of Peter's phrases can neither be confirmed or denied.
Resources
- Slides from the presentation on Pitch.com
- Cambria Development Notes
- Cambria Project on Github https://github.com/inkandswitch/cambria
- Fission forum post with chat log
Interested in more presentations like this? Browse the presentations here on the blog and sign up for upcoming events on the forum.