Guiding Design Principles for TaskCluster


At the 2016 tc-worker workweek the TaskCluster Platform team laid out our core design principles. The four key principles are:

  • Self-service
  • Robustness
  • Enable rapid change
  • Community friendliness

These are all under an umbrella we call Getting Things Built™. None of our work matters unless it works! Read further for a slightly expanded list of principles!

Getting Things Builtâ„¢

Self-service

  • Task Isolation
  • API-driven UI Tools
  • Extensible
  • Granular Security
  • Clearly-defined interfaces
  • Separation of concerns

Robustness

  • Scalability
  • Correctness
    • Idempotent APIs
  • Minimal Self-hosting
    • Use managed services, e.g. S3, Azure Storage
    • Don't self-host mutable services
  • Stateless services
  • 12-factor applications

Enable Rapid Change

  • Agility
  • Clearly-defined interfaces
  • Microservices
  • Separation of concerns

Community Friendly

  • Transparency
    • Granular Security
  • Public by Default
  • Self-Service

Future Dreams, Living in the clouds

Reputation and Profitability

  • PaaS for everybody
  • Support Enterprise deployments

TaskCluster Principles Diagram