Jforum #117 - Spotify lightning talks and Metaprogramming


Details
We are excited to announce a meetup hosted by Spotify.
Limited numbers of seats, REGISTRATION ONLY ON THIS LINK: https://jforum.confetti.events/jforum-117-meetup
Agenda:
17:30 Doors open, light food and drinks
Entrance from Regeringsgatan 13. To avoid queues we’ll send you a QR code to the email address provided in the registration form, which will let you into the office.
18:00 Welcome and lightning talk: Reducing Power Consumption in the Spotify Wear App
Speaker: Gustav Hedberg
18:30 Break
18:45 Talk: Schema-on-read is obsolete. Welcome metaprogramming.
Speaker: Lars Albertsson
How fast can you modify your data collection to include a new field, make all the necessary changes in data processing and storage, and then use that field in analytics or product features? For many companies, the answer is a few quarters, whereas others do it in a day. This data agility latency has a direct impact on companies’ ability to innovate with data. Schema-on-read has been a key strategy to lower that latency - as the community has shifted towards storing data outside relational databases, we no longer need to make series of schema changes through the whole data chain, coordinated between teams to minimise operational risk. Schema-on-read comes with a cost, however. Errors that we used to catch during testing or in early test deployments can now sneak into production undetected and surface as product errors or hard-to-debug data quality problems much later than with schema-on-write solutions.
In this presentation, we will show how we reject the tradeoff between slow schema change rate and quality to achieve the best of both worlds. By using metaprogramming and versioned pipelines that are tested end-to-end, we can achieve fast schema changes with schema-on-write and the protection of static typing. We will describe the tools in our toolbox - Scalameta, Chimney, Bazel, and custom tools. We will also show how we leverage them to take static typing one step further and differentiate between domain types that share representation, e.g. EmailAddress vs ValidatedEmailAddress or kW vs kWh, while maintaining harmony with data technology ecosystems.
19:30 Mingling and music
If, for any reason, you find that you can no longer attend, please take a moment to update your RSVP (from the confirmation email).

Jforum #117 - Spotify lightning talks and Metaprogramming