<div dir="ltr"><div class="gmail_extra">I can tell about our experience.</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">We in Flussonic have disk format of config.  It is similar to nginx-like:</div><div class="gmail_extra"><br></div><div class="gmail_extra">stream ort {</div><div class="gmail_extra">  url udp://<a href="http://239.0.0.1:1234">239.0.0.1:1234</a>;</div><div class="gmail_extra">  dvr /storage 10d;</div><div class="gmail_extra">}</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">This format is parsed to a map of maps of maps of maps. I tried to avoid arrays (lists).  These maps mostly have atom as a key except stream names, that must be binaries.</div><div class="gmail_extra"><br></div><div class="gmail_extra">It is convenient to use from erlang, but we have to transform it to JSON. When we read it back from JSON we need to translate binary keys to atoms and so we have a special function that translates some keys from binary to atom, and some keys are left as binary.  It is a bit tricky, but it is very convenient to use.</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div></div>