Internet Explorer is no longer supported. Many things will still work, but your experience will be degraded and some things won't function. Please use a modern browser such as Edge, Chrome, or Firefox.

OtterScript Overview

Modified on July 19, 2024view on GitHub


OtterScript is a Domain-Specific Language that was designed in tandem with the execution engine to represent configuration plans and orchestration plans in Otter, and deployment plans in BuildMaster. Because a DSL is inherently limited in functionality, a key feature of OtterScript is the ability to "drop down" to a lower-level scripting language as needed.

While OtterScript is neither a general-purpose programming language (like Ruby), nor a general-purpose mark-up language (like YAML), it was inspired by both, and allows you to build declarative and imperative plans.

Language Design Goals

In addition to implementing the actual requirements for an advanced execution engine capable of running on thousands of servers, we considered these factors when developing OtterScript:

  • easy to learn for those with little to no programming experience
  • familiar and intuitive for those with intermediate programming experience
  • extensible and powerful for those with programming and technical expertise

By using the Visual Mode in the plan editor, many users won't even realize that they're creating plans with OtterScript.