May 17, 2017
Caveat Configurator: How to replace configs with code, and why you might not want to
Complicated systems require expressive configuration languages. But language design is hard: It’s no surprise that many applications have either limited configurability or an unwieldy configuration format with complex semantics. One solution to this problem is to write your configs in an existing language and treat them more like code. This pattern allows you to use the same familiar workflows and tools to configure applications that you use when developing them.
At Jane Street, we developed ocaml-plugin, a library for embedding OCaml within an application, to leverage this approach and have made use of it in a variety of systems. But, giving config-writers the full flexibility of a Turing-complete language introduces its own problems. In this talk, we’ll discuss the merits of writing configs in code and cover some of the different approaches we’ve taken to harness this power.
Dominick LoBraico joined Jane Street in 2013 after graduating from the University of Chicago with degrees in Computer Science and Public Policy. At Jane Street he works as a software engineer and systems administrator helping to evolve the platform on which much of the firm’s technology runs. Among other things, he has worked on systems monitoring, deployment tools, and a mail server written and configured in OCaml.