# Architecture Mermaid Quick Test Page

# Architecture diagram demo

## Simple diagram with groups

          architecture-beta
            group api(cloud)[API]

            service db(database)[Database] in api
            service disk1(disk)[Storage] in api
            service disk2(disk)[Storage] in api
            service server(server)[Server] in api
            service gateway(internet)[Gateway]

            db:L -- R:server
            disk1:T -- B:server
            disk2:T -- B:db
            server:T -- B:gateway

## Groups within groups

          architecture-beta
            group api[API]
            group public[Public API] in api
            group private[Private API] in api

            service serv1(server)[Server] in public

            service serv2(server)[Server] in private
            service db(database)[Database] in private

            service gateway(internet)[Gateway] in api

            serv1:B -- T:serv2

            serv2:L -- R:db

            serv1:L -- R:gateway

## Default icon (?) from unknown icon name

          architecture-beta
            service unknown(iconnamedoesntexist)[Unknown Icon]

## Split Direction

          architecture-beta
            service db(database)[Database]
            service s3(disk)[Storage]
            service serv1(server)[Server 1]
            service serv2(server)[Server 2]
            service disk(disk)[Disk]

            db:L -- R:s3
            serv1:L -- T:s3
            serv2:L -- B:s3
            serv1:T -- B:disk

## Arrow Tests

          architecture-beta
            service servC(server)[Server 1]
            service servL(server)[Server 2]
            service servR(server)[Server 3]
            service servT(server)[Server 4]
            service servB(server)[Server 5]

            servC:L <--> R:servL
            servC:R <--> L:servR
            servC:T <--> B:servT
            servC:B <--> T:servB

            servL:T <--> L:servT
            servL:B <--> L:servB
            servR:T <--> R:servT
            servR:B <--> R:servB

          architecture-beta
            service servC(server)[Server 1]
            service servL(server)[Server 2]
            service servR(server)[Server 3]
            service servT(server)[Server 4]
            service servB(server)[Server 5]

            servC:L <--> R:servL
            servC:R <--> L:servR
            servC:T <--> B:servT
            servC:B <--> T:servB

            servT:L <--> T:servL
            servB:L <--> B:servL
            servT:R <--> T:servR
            servB:R <--> B:servR

## Group Edges

          architecture-beta
            group left_group(cloud)[Left]
            group right_group(cloud)[Right]
            group top_group(cloud)[Top]
            group bottom_group(cloud)[Bottom]
            group center_group(cloud)[Center]

            service left_disk(disk)[Disk] in left_group
            service right_disk(disk)[Disk] in right_group
            service top_disk(disk)[Disk] in top_group
            service bottom_disk(disk)[Disk] in bottom_group
            service center_disk(disk)[Disk] in center_group

            left_disk{group}:R <--> L:center_disk{group}
            right_disk{group}:L <--> R:center_disk{group}
            top_disk{group}:B <--> T:center_disk{group}
            bottom_disk{group}:T <--> B:center_disk{group}

## Edge Label Test

          architecture-beta
            service servC(server)[Server 1]
            service servL(server)[Server 2]
            service servR(server)[Server 3]
            service servT(server)[Server 4]
            service servB(server)[Server 5]

            servC:L -[Label]- R:servL
            servC:R -[Label]- L:servR
            servC:T -[Label]- B:servT
            servC:B -[Label]- T:servB

            servL:T -[Label]- L:servT
            servL:B -[Label]- L:servB
            servR:T -[Label]- R:servT
            servR:B -[Label]- R:servB

          architecture-beta
            service servC(server)[Server 1]
            service servL(server)[Server 2]
            service servR(server)[Server 3]
            service servT(server)[Server 4]
            service servB(server)[Server 5]

            servC:L -[Label that is Long]- R:servL
            servC:R -[Label that is Long]- L:servR
            servC:T -[Label that is Long]- B:servT
            servC:B -[Label that is Long]- T:servB

            servL:T -[Label that is Long]- L:servT
            servL:B -[Label that is Long]- L:servB
            servR:T -[Label that is Long]- R:servT
            servR:B -[Label that is Long]- R:servB

## Junction Demo

          architecture-beta
            service left_disk(disk)[Disk]
            service top_disk(disk)[Disk]
            service bottom_disk(disk)[Disk]
            service top_gateway(internet)[Gateway]
            service bottom_gateway(internet)[Gateway]
            junction juncC
            junction juncR

            left_disk:R -- L:juncC
            top_disk:B -- T:juncC
            bottom_disk:T -- B:juncC
            juncC:R -- L:juncR
            top_gateway:B -- T:juncR
            bottom_gateway:T -- B:juncR

## Junction Demo Groups

          architecture-beta
            group left
            group right
            service left_disk(disk)[Disk] in left
            service top_disk(disk)[Disk] in left
            service bottom_disk(disk)[Disk] in left
            service top_gateway(internet)[Gateway] in right
            service bottom_gateway(internet)[Gateway] in right
            junction juncC in left
            junction juncR in right

            left_disk:R -- L:juncC
            top_disk:B -- T:juncC
            bottom_disk:T -- B:juncC

            top_gateway:B <-- T:juncR
            bottom_gateway:T <-- B:juncR

            juncC{group}:R --> L:juncR{group}

## External Icons Demo

        architecture-beta
          service s3(logos:aws-s3)[Cloud Store]
          service ec2(logos:aws-ec2)[Server]
          service api(logos:aws-api-gateway)[Api Gateway]
          service fa(fa:image)[Font Awesome Icon]