Prodvana Data Model

Data Model

The basic structure of Prodvana is organized around a tree focused on your applications. At each layer, configurations are materialized based on the inputs from the layer above and user overrides. This document describes objects in Prodvana API at a high level as well as define the relationships between them. For actual fields available, refer to our API documentation (TODO).


Every object in Prodvana contains these sets of information:


Every object in Prodvana has metadata or belongs to an object(s) with metadata.

  • ID - globally-unique identifier
  • name - human-readable identifier, unique within the parent. For example, as services belong to applications, service names are unique within that application
  • (optional) version - a version string corresponding to what is live. May be unset if the object has not been manifested (e.g. a service instance that has never been pushed).


The desired state of the object.


The actual state of the object, including any foreign key references to objects it may contain.


A logical collection of services with a single production owner.

  • Application Pipelines - application-scoped pipelines that push multiple services in an application together
  • Services
  • Release Channels


Uniform collection of servers, lambdas, processes, etc.

  • Service Instances
  • Service Pipelines - service-scoped pipelines that push just this service. Every service has at least a push and rollback pipeline.

Service Instances

An instantiation of a service in a single release channel

Application Release Channels

unique copies of the application targeting a set of user. An application has one or more release channels.


A workflow defined as an ordered collection of tasks. A pipeline has an owner, either service, application, or the organization itself, which determines the scope at which the pipeline operates.

  • Pipeline Runs

Pipeline Runs

A single run of the pipeline


Coming soon.