@startuml
' configures the library
!global $INCLUSION_MODE="local"
!global $LIB_BASE_LOCATION=".."

' loads the library's bootstrap
!include $LIB_BASE_LOCATION/bootstrap.puml

' loads the package bootstrap
include('eip-1/bootstrap')

Title("Simple diagram to show some EIP shapes")

include('eip-1/MessageConstruction/CommandMessage')
include('eip-1/MessageConstruction/EventMessage')
include('eip-1/MessagingChannels/DatatypeChannel')
include('eip-1/MessagingSystems/MessageChannel')
include('eip-1/MessagingEndpoints/CompetingConsumers')
include('eip-1/MessagingEndpoints/Application')
include('eip-1/MessageConstruction/DocumentMessage')

Application('producer', 'producer')
CommandMessage('cmd', 'a command')
EventMessage('evt', 'an event')
DatatypeChannel('queue', 'command queue', 'DatatypeChannel')
CompetingConsumers('handler', 'command handler', 'CompetingConsumers')
MessageChannel('bus', 'event bus', 'MessageChannel')
MessageChannel('channel', 'result channel', 'MessageChannel')
DocumentMessage('result', 'a result')

producer -> cmd
cmd -> queue
queue -> handler
handler -> evt
handler --> result
channel <- result
producer <- channel
evt -> bus

@enduml