Posit Team Architectures

Posit Team is a bundle of our popular professional software for developing data science projects, publishing data products, and managing packages.

Posit Team includes Workbench, Connect, and Package Manager.

The diagrams on this page illustrate architectures for all three products. See individual product architecture diagrams here:

Product Link
image of laptop running Workbench Workbench
Connect logo Connect
Package Manager logo Package Manager

Posit Team: Each product on a separate server

In this configuration, each product is installed on a separate Linux server.

Posit Team: Load-balanced and high availability cluster

In this configuration, each product is installed on two or more separate Linux servers and requires:

  • User’s home directories to be stored on an external shared file server (Workbench)
  • Application data to be stored on an external shared file server (Connect and Package Manager)
  • Application metadata to be stored on an external PostgreSQL database server (All)

flowchart LR
u1(User)
b1(Browser)
elb1(External Load Balancer)
elb2(External Load Balancer)
elb3(External Load Balancer)
workbench1(Workbench)
workbench2(Workbench)
workbench3(Workbench)
connect1(Connect)
connect2(Connect)
connect3(Connect)
packagemanager1(Package Manager)
packagemanager2(Package Manager)
packagemanager3(Package Manager)
nfs(Shared Storage)
pg(Postgres)


u1---b1
b1---elb1
b1---elb2
b1---elb3
elb1---workbench1
elb2---connect1
elb3---packagemanager1

subgraph products [ ]
    subgraph wb [Workbench Servers]
        workbench1---workbench2---workbench3
    end
    subgraph pc [Connect Servers]
        connect1---connect2---connect3
    end
    subgraph pm [Package Manager Servers]
        packagemanager1---packagemanager2---packagemanager3
    end
end

products-..-pg
products-..-nfs


classDef server fill:#FAEEE9,stroke:#ab4d26
classDef product fill:#447099,stroke:#213D4F,color:#F2F2F2
classDef session fill:#7494B1,color:#F2F2F2,stroke:#213D4F
classDef element fill:#C2C2C4,stroke:#213D4F
classDef req fill:#72994E,stroke:#1F4F4F

class products,wb,pc,pm server
class workbench1,workbench2,workbench3,connect1,connect2,connect3,packagemanager1,packagemanager2,packagemanager3 product
class u1,b1 element
class pg,nfs req

Posit Team: Running inside a Kubernetes cluster

In this configuration, each product is installed within the kubernetes cluster and requires:

  • User’s home directories to be stored on an external shared file server (Workbench)
  • Application data to be stored on an external shared file server (Connect and Package Manager)
  • Application metadata to be stored on an external PostgreSQL database server (All)

Posit provides Helm Charts to help maintain this entire installation.

flowchart LR
u1(User)
u2(User)
u3(User)
b1(Browser)
b2(Browser)
b3(Browser)
ingress(Ingress Controller <br/> nginx/nginx-ingress)
workbench(Workbench <br/> Launcher <br/> ghcr.io/rstudio/rstudio-workbench)
connect(Connect <br/> Launcher)
packagemanager(Package Manager)
rsession(RStudio Session <br/> docker.io/rstudio/r-session-complete)
jupyter(Jupyter Session <br/> ghcr.io/rstudio/py-session-complete)
vscode(VS Code Session <br/> ghcr.io/rstudio/py-session-complete)
job(Workbench Job <br/> docker.io/rstudio/r-session-complete)
qmd(Quarto<br/>ghcr.io/rstudio/content-base:r-40-py-3.8)
flask(Flask App<br/>ghcr.io/rstudio/content-base:py-3.8)
shiny(Shiny App<br/>ghcr.io/rstudio/content-base:r-4.0)
dash(Dash App<br/>ghcr.io/rstudio/content-base:py-3.8)
nfs(Shared Storage)
pg(Postgres)


u1---b1
u2---b2
u3---b3
b1---ingress
b2---ingress
b3---ingress

subgraph k8s [Kubernetes cluster]
    ingress---workbench
    ingress---connect
    ingress---packagemanager
    workbench---rsession
    workbench---jupyter
    workbench---vscode
    workbench---job
    connect---qmd
    connect---flask
    connect---shiny
    connect---dash
end

k8s-..-pg
k8s-..-nfs

classDef server fill:#FAEEE9,stroke:#ab4d26
classDef product fill:#447099,stroke:#213D4F,color:#F2F2F2
classDef session fill:#7494B1,color:#F2F2F2,stroke:#213D4F
classDef element fill:#C2C2C4,stroke:#213D4F
classDef req fill:#72994E,stroke:#1F4F4F

class k8s server
class workbench,connect,packagemanager product
class ingress,rsession,jupyter,vscode,job,qmd,flask,shiny,dash session
class u1,u2,u3,b1,b2,b3,lb element
class pg,nfs req