@startuml Loqate
!includeurl https://raw.githubusercontent.com/aheil/EIP-PlantUML/master/dist/EIP-PlantUML.puml
!define AzurePuml https://raw.githubusercontent.com/RicardoNiepel/Azure-PlantUML/release/2-1/dist
!includeurl AzurePuml/AzureCommon.puml
!includeurl AzurePuml/Integration/AzureLogicApps.puml

LAYOUT_TOP_DOWN

Message( user, "Message W\ Data")

frame "LoqateService" as f {
    'AzureLogicApps( endpoint, "Label", "Technology", "LoqateService")
    AzureLogicApps( find, "Label", "Technology", "LoqateFindService")
    Message( msgI, "Message")
    Splitter( sp1, "De-batch")
    DocumentMessage( msgD1)
}

frame "Not Address" as na {
    MessageFilter( nadd, "not Address")
}

frame "Address" as a {
    MessageFilter( add, "Address")
    AzureLogicApps( retrieve, "Label", "Technology", "LoqateRetrieveService")
    Message( msgO, "Message")
    Splitter( sp2, "De-batch")
    DocumentMessage( msgDb)
    MessageStore( db, "DataStore")
}

f -[hidden]down-> na
na -[hidden]right-> a

user --> find
'endpoint --> find
find -> msgI
msgI -> sp1
sp1 -> msgD1

msgD1 -[bold,#red]-> nadd
nadd -[bold,#red]-> find

msgD1 --> add
add --> retrieve
retrieve -> msgO
msgO -> sp2
sp2 -> msgDb
msgDb -> db


@enduml