Design Principles

  • All Arvados core components are free software.
  • Any application can run on Arvados, including non-free tools that are only available as binaries. Use wrapper scripts around vendor-provided source and binary distributions, rather than maintaining derivative works.
  • Use web technologies to tie components together, so programs can access Arvados regardless of programming language or framework.
  • Use the best tool, programming language, or framework for each component, instead of standardizing on a single platform for the sake of conformity.
  • Where possible, use established, widely understood components such as SSH, Git, Rails, and WebSockets rather than hand rolling custom components.
  • Use technologies such as virtualization and Linux containers to increase portability and flexibility of deployment.