Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(docs): add sequence diagrams for improvements in scalability #874

Merged
merged 2 commits into from
Aug 30, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions docs/src/uml-diagrams/runtime-view/scaling-edc-processing.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
@startuml
skinparam monochrome true
skinparam shadowing false
skinparam defaultFontName "Architects daughter"


autonumber "<b>[00]"

participant "EDC Client" as IRS
participant "EDC Cache" as edc_cache
participant "EDC" as EDC

IRS -> EDC: Request Contract Offers {filter": "type=digitalTwinRegistry"}
IRS <-- EDC: Contract Offer

IRS -> edc_cache: get EDR Token

group EDC negotiation and transfer process
rnote right edc_cache
replace traditional token negotiation with EDR API
this makes reuse of existing negotiations more efficient
end note

edc_cache -> EDC: Negotiate Contract for Offer
edc_cache <-- EDC: Contract Negotiation (Contract Agreement ID))

edc_cache -> EDC: Initiate Transfer with Agreement ID
edc_cache <-- EDC: Transfer Process ID

edc_cache <-- EDC : EDR Token callback
end

IRS <-- edc_cache: EDR Token

@enduml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
@startuml
skinparam monochrome true
skinparam shadowing false
skinparam defaultFontName "Architects daughter"
autonumber "<b>[00]"

actor IrsApiConsumer


box "IRS" #LightGrey

IrsApiConsumer -> BatchController : POST /irs/orders
rnote left
200k digital twin ids
end note
IrsApiConsumer <- BatchController : order id

BatchController --> CreationBatchService: create batches
CreationBatchService -> CreationBatchService: split into parallel executable working packages

rnote right
As is: parallel processes are not limited
To be: limit of e.g. 5 jobs in parallel
end note

loop
rnote right CreationBatchService
sequentially
end note
CreationBatchService -> JobEventLinkedQueueListener: execute working packages
JobEventLinkedQueueListener --> IrsApiConsumer: callback on completed batch
end

@enduml
36 changes: 36 additions & 0 deletions docs/src/uml-diagrams/runtime-view/scaling-job-processing.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
@startuml
skinparam monochrome true
skinparam shadowing false
skinparam defaultFontName "Architects daughter"
autonumber "<b>[00]"

actor IrsApiConsumer


box "IRS" #LightGrey

IrsApiConsumer -> IrsController : POST /irs/jobs
rnote right IrsApiConsumer
id instead of globalAssetId
end rnote
IrsApiConsumer <- IrsController : job id

participant "blackbox IRS processing" as irs_process

IrsController -> irs_process
irs_process -> DTR: get twin by id
rnote right irs_process
1 call instead of 2
end rnote
irs_process <- DTR: twin

irs_process -> irs_process: globalAssetId of twin is saved in job response
rnote right irs_process
As is: the id with which the Job was started is saved as globalAssetId in the job
To be: Job contains the globalAssetId instead of the id
end rnote

IrsApiConsumer -> IrsController : GET /irs/jobs/<id>
IrsApiConsumer <- IrsController : job

@enduml
Loading