@startuml
!include theme.puml
title Vendure Architecture

interface "." as bootstrap
interface "." as bootstrapWorker


component VendureServer
component VendureWorker

cloud "GraphQL API" {
    [Shop API] #ff88c1
    [Admin API] #ff88c1
}

cloud {
  [Job Queue] #f3fff3
}

database "Database" {
component dbTypes #f3fff3 [
MySQL/MariaDB
PostgreSQL
SQLite
...
]
}

'note bottom of Database : MySQL/MariaDB, PostgreSQL, SQLite
note top of bootstrap : bootstrap()
note top of bootstrapWorker : bootstrapWorker()
bootstrap -down- [VendureServer]
bootstrapWorker -down- [VendureWorker]
[VendureServer] <.right.> [Shop API]
[VendureServer] <.> [Admin API]
[VendureServer] <..> dbTypes
[VendureWorker] <..> dbTypes
[VendureServer] ..> [Job Queue]
[Job Queue] .right.> [VendureWorker]

@enduml
