Skip to content
We are always hiring

Naming Conventions

Projects

When creating a new app or service, we should give it unique internal codename to make it easy to reference. It should be the name we use when creating a Github repository, provisioning its infrastructure, triggering deployments, and so on. This allows the user-facing name to be a separate, configurable entity, and means that a change in Product name does not have a cascading impact on our code and workflows.

Ideally, the codename should be a short, snappy and broadly indicate the functional area of the app or service, to make it easy to remember (e.g. Depot for file storage, Persona for user authentication). However, we should avoid using names or terms that are already overloaded with meaning, to avoid confusion. (e.g. Echo is already a keyword in PHP, Babel is a popular Javascript build tool)

Github repositories

We use a postfix to indicate what type of component a repo contains:

  • -app to denote a full application or microapp, e.g. rl-app
  • -server to indicate a largely api-only service or microservice, e.g. persona-server
  • {lang}-client to indicate a client library, e.g. persona-php-client
  • -hack to indicate a hackday project, e.g. gotmilk-hack 1
  • For repos representing websites, the website name, e.g. engineering.talis.com

Domain name endpoints

We try and be more literal in domain names - primitive endpoints are more literal, e.g. Persona -> https://users.talis.com and Depot -> https://files.talis.com. This makes more sense to external API users without having to explain.

Also it allows services to split down again later, for example Persona might add https://oauth.talis.com in the future.