42 lines
1.5 KiB
Plaintext
42 lines
1.5 KiB
Plaintext
|
@startuml
|
||
|
title Provisioning a workload on the TFGrid
|
||
|
|
||
|
autonumber
|
||
|
actor "User" as user
|
||
|
actor "Farmer" as farmer
|
||
|
database "TF Explorer" as explorer
|
||
|
database Blockchain as blockchain
|
||
|
boundary Node as node
|
||
|
|
||
|
== Price definition ==
|
||
|
farmer -> explorer: Farmer set the price of its Resource units
|
||
|
== Resource research ==
|
||
|
activate explorer
|
||
|
user -> explorer: User look where to deploy the workload
|
||
|
user <- explorer: Gives detail about the farmer owning the node selected
|
||
|
== Resource reservation ==
|
||
|
user -> explorer: write description of the workload
|
||
|
explorer -> user: return a list of transaction to execute on the blockchain
|
||
|
== Reservation processing ==
|
||
|
user -> blockchain: execute transactions
|
||
|
explorer <-> blockchain: verify transactions are done
|
||
|
explorer -> explorer: reservation status changed to `deploy`
|
||
|
== Resource provisioning ==
|
||
|
node <-> explorer: read description of the workloads
|
||
|
node -> node: provision workload
|
||
|
alt provision successfull
|
||
|
node -> explorer: write result of the provisining
|
||
|
explorer -> blockchain: forward token to the farmer
|
||
|
blockchain -> farmer: tokens are available to the farmer
|
||
|
user <- explorer: read the connection information to his workload
|
||
|
else provision error
|
||
|
node -> explorer: write result of the provisining
|
||
|
explorer -> explorer: cancel reservation
|
||
|
node -> node: free up capacity
|
||
|
explorer -> blockchain: token refunded to user
|
||
|
blockchain <-> user: tokens are available to the user again
|
||
|
end
|
||
|
deactivate explorer
|
||
|
== Resource monitoring ==
|
||
|
user <-> node: use / monitor workload
|
||
|
@enduml
|