Vintner

Domain Model & Terminology

The viticulture-themed domain model, entity relationships, and lifecycle states.

Domain Model & Terminology

The platform uses a viticulture (winemaking) metaphor for its domain model. This is not cosmetic — each term maps to a distinct architectural concept.

Domain Model

Glossary

TermMeaningAnalogy
TrellisWeb platform (control plane)The support structure for grapevines
GrapeCLI toolThe fruit — what you pick and use
VineyardWorkspace / project groupingA plot of land with multiple vines
VineA single infrastructure configurationOne grapevine producing specific fruit
TendrilExecution agent (worker)The curling shoot that reaches out and grabs
HarvestDeployment action (grape harvest)Picking the fruit — deploying infrastructure
PlantCreate a new vine configurationPlanting a new grapevine

Entity Relationships

User
 └── Vineyards (1:N)
      └── Vines (1:N)
           ├── Cloud Identity (N:1) ─── links to AWS/GCP/Azure account
           ├── vine_network (1:1) ─── VPC / VNet / VPC Network
           ├── vine_cluster (1:1) ─── EKS / GKE / AKS
           ├── vine_dns (1:1) ─── Route53 / Cloud DNS / Azure DNS
           ├── vine_repositories (1:1) ─── Git repo references
           ├── vine_databases (1:N) ─── Aurora / Cloud SQL / Azure DB
           ├── vine_caches (1:N) ─── ElastiCache / Memorystore / Azure Cache
           ├── vine_queues (1:N) ─── SQS / Pub/Sub / Service Bus
           ├── vine_topics (1:N) ─── SNS / Pub/Sub / Service Bus Topics
           ├── vine_nosql_tables (1:N) ─── DynamoDB / Firestore / Cosmos DB
           ├── vine_container_registries (1:N) ─── ECR / Artifact Registry / ACR
           ├── vine_secrets (1:N) ─── Secrets Manager / Secret Manager / Key Vault
           └── provision_jobs (1:N) ─── PLAN, DEPLOY, DESTROY, etc.
                └── provision_job_logs (1:N)

Singleton components (1:1 per vine): network, cluster, DNS, repositories. Every vine has exactly one of each (or none if that section is disabled).

Multi-instance components (1:N per vine): databases, caches, queues, topics, NoSQL tables, container registries, secrets. A vine can have zero or many of each.

Vine Lifecycle

A vine progresses through these states:

DRAFT ──► QUEUED ──► PROVISIONING ──► ACTIVE


                                    DESTROYING ──► DESTROYED


                                      FAILED
StatusMeaning
DRAFTConfiguration created but not yet submitted for provisioning
QUEUEDA provisioning job has been created and is waiting for a Tendril
PROVISIONINGA Tendril is actively running Terraform
ACTIVEInfrastructure is provisioned and running
DESTROYINGA destroy job is in progress
DESTROYEDInfrastructure has been torn down
FAILEDProvisioning or destruction failed (can be retried)

Component Status

Each vine component (network, cluster, database, etc.) has its own status independent of the parent vine:

StatusMeaning
PENDINGAwaiting first provisioning
CREATINGCurrently being created by Terraform
ACTIVESuccessfully provisioned
UPDATINGConfiguration change being applied
FAILEDCreation or update failed
DESTROYINGBeing torn down
DESTROYEDSuccessfully removed

Job Lifecycle

Jobs represent units of work executed by Tendrils:

QUEUED ──► CLAIMED ──► PROCESSING ──► SUCCESS

                          ├──► FAILED

                          └──► CANCELLED
StatusMeaning
QUEUEDWaiting in the queue for a Tendril to claim
CLAIMEDA Tendril has atomically claimed this job
PROCESSINGTendril is actively executing (Terraform running)
SUCCESSJob completed successfully
FAILEDJob failed (error message attached)
CANCELLEDUser cancelled the job before completion

Job Types

TypePurpose
CONNECTION_TESTVerify cloud credentials work, cache discovered resources
FETCH_RESOURCESDiscover existing cloud resources (VPCs, subnets, hosted zones)
BOOTSTRAPInitialize infrastructure workspace
PLANRun terraform plan + optional Infracost analysis
DEPLOYRun terraform apply + install ArgoCD
DESTROYRun terraform destroy with graceful cleanup
DEPLOY_WORKERProvision Tendril infrastructure (ECS task definition, IAM roles)
DESTROY_WORKERTear down Tendril infrastructure

Environment Stages

Each vine targets a specific environment:

StagePurpose
developmentDevelopment/testing infrastructure
stagingPre-production validation
productionProduction workloads

The environment stage affects naming conventions, resource sizing defaults, and Terraform state paths.

On this page