@startuml(id=ContainerWithBoundary)
!includeurl https://raw.githubusercontent.com/plantuml-stdlib/gilbarbara-plantuml-sprites/master/sprites/android-icon.puml
!includeurl https://raw.githubusercontent.com/plantuml-stdlib/gilbarbara-plantuml-sprites/master/sprites/docker-icon.puml
!includeurl https://raw.githubusercontent.com/plantuml-stdlib/gilbarbara-plantuml-sprites/master/sprites/graphql.puml
!includeurl https://raw.githubusercontent.com/plantuml-stdlib/gilbarbara-plantuml-sprites/master/sprites/kafka.puml
!includeurl https://raw.githubusercontent.com/plantuml-stdlib/gilbarbara-plantuml-sprites/master/sprites/postgresql.puml
!includeurl https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml
title My Software System - Containers
caption Example container view

SHOW_PERSON_OUTLINE()
LAYOUT_TOP_DOWN()

AddRelTag("async relationship", $textColor="$ARROW_COLOR", $lineColor="$ARROW_COLOR", $lineStyle = DashedLine())

Person_Ext(17, "Android User", "some Android user", "android-icon")
WithoutPropertyHeader()
AddProperty("prop 1", "value 1")
Person(6, "Maintainer", "some employee", "", $link="https://www.google.de")
System_Boundary(1_boundary, My Software System) {
  Container(3, "App", "Android", "android app", "android-icon")
  WithoutPropertyHeader()
  AddProperty("prop 1", "value 1")
  Container(2, "Backend App", "Kotlin", "some backend app", "docker-icon", $link="https://www.google.de")
  ContainerDb(4, "Database", "postgres", "some database", "postgresql")
}
System_Boundary(11_boundary, GraphQL) {
  Container(12, "Internal Schema", "", "Schema provided by our app", "")
  Container_Ext(15, "External Schema", "", "Schema provided by another team", "")
}
System_Boundary(8_boundary, Broker) {
  ContainerQueue_Ext(9, "my.topic", "", "external topic", "kafka")
}
Rel_D(17, 3, "uses app")
Rel_D(3, 12, "reuqest data using", "GraphQL", $sprite=graphql, $link="https://graphql.org/")
Rel_R(2, 4, "CRUD", "JPA")
Rel_D(2, 12, "provides subgraph to")
Rel_U(2, 9, "reads topic", "Avro", $tags="async relationship")
Rel_D(15, 12, "extends schema")
Rel_D(6, 2, "Admin UI", "REST")

skinparam linetype ortho
skinparam nodesep 100
skinparam ranksep 130
SHOW_LEGEND(true)

@enduml