A series of flatMap functions in a row can be difficult to read. For-comprehensions can help with this.
Configuration as code gives you compile-time safety, while still giving you the option of overriding configuration values at runtime. It is the best of both worlds.
Ref is a purely functional way of holding and mutating application state in memory. All of its operations are atomic and thread-safe.
Scala's require method is frequently used where better options are available.