Standardizing error codes: Introducing Serum, and the Serum Analyzer for Golang

Eric Myhre

Playlists: 'gpn20' videos starting here / audio

Serum is standard for serializable, easy-to-observe, cross-language, error handling. It's meant to be a "just enough" standard: canonically defined in JSON, easy to adopt, and easy to extend -- and just enough structure to support static analysis. Serum is meant to work within languages that have a "errors are values" philosophy, but can work with exception-oriented languages too.

Along with the Serum specifications, we also introduce go-serum-analzyer, a static analysis tool which can be used in golang programs to analyze their error handling, and enforce contracts and documentation about error codes that functions may yield.