#31: Dynamic diagram supports automatically numbered interactions

pull/34/head
KIRCHSTH 7 years ago
parent 249517f9ba
commit f462370a03

@ -2,11 +2,172 @@
' uncomment the following line and comment the first to use locally
' !include C4_Component.puml
' Scope: An enterprise, software system or container.
' Scope: Interactions in an enterprise, software system or container.
' Primary and supporting elements: Depends on the diagram scope -
' enterprise - people and software systems related to the enterprise in scope
' software system - see system context or container diagrams,
' container - see component diagram.
' Intended audience: Technical and non-technical people, inside and outside of the software development team.
' Dynamic diagram introduces no new elements, the container and component elements are enough
' Dynamic diagram introduces (automatically) numbered interactions:
' Interact(): used automatic calculated index,
' Interact2(): index can be explicit defined,
' SetIndex(): set the next index,
' GetIndex(): get the index and automatically increase index
' Index
' ##################################
!function $inc_($value, $step=1)
!return $value + $step
!endfunction
!$index=1
!function SetIndex($new_index)
!$index=$new_index
!endfunction
!function GetIndex($auto_increase=1)
!$old = $index
!$index=$inc_($index, $auto_increase)
!return $old
!endfunction
' Interact
' ##################################
!define Interact2(e_from, e_to, e_label, e_index) Rel(e_from, e_to, "e_index: e_label")
!define Interact2(e_from, e_to, e_label, e_techn, e_index) Rel(e_from, e_to, "e_index: e_label", e_techn)
!define Interact2_Back(e_from, e_to, e_label, e_index) Rel_Back(e_from, e_to, "e_index: e_label")
!define Interact2_Back(e_from, e_to, e_label, e_techn, e_index) Rel_Back(e_from, e_to, "e_index: e_label", e_techn)
!define Interact2_Neighbor(e_from, e_to, e_label, e_index) Rel_Neighbor(e_from, e_to, "e_index: e_label")
!define Interact2_Neighbor(e_from, e_to, e_label, e_techn, e_index) Rel_Neighbor(e_from, e_to, "e_index: e_label", e_techn)
!define Interact2_Back_Neighbor(e_from, e_to, e_label, e_index) Rel_Back_Neighbor(e_from, e_to, "e_index: e_label")
!define Interact2_Back_Neighbor(e_from, e_to, e_label, e_techn, e_index) Rel_Back_Neighbor(e_from, e_to, "e_index: e_label", e_techn)
!define Interact2_D(e_from, e_to, e_label, e_index) Rel_D(e_from, e_to, "e_index: e_label")
!define Interact2_D(e_from, e_to, e_label, e_techn, e_index) Rel_D(e_from, e_to, "e_index: e_label", e_techn)
!define Interact2_Down(e_from, e_to, e_label, e_index) Rel_Down(e_from, e_to, "e_index: e_label")
!define Interact2_Down(e_from, e_to, e_label, e_techn, e_index) Rel_Down(e_from, e_to, "e_index: e_label", e_techn)
!define Interact2_U(e_from, e_to, e_label, e_index) Rel_U(e_from, e_to, "e_index: e_label")
!define Interact2_U(e_from, e_to, e_label, e_techn, e_index) Rel_U(e_from, e_to, "e_index: e_label", e_techn)
!define Interact2_Up(e_from, e_to, e_label, e_index) Rel_Up(e_from, e_to, "e_index: e_label")
!define Interact2_Up(e_from, e_to, e_label, e_techn, e_index) Rel_Up(e_from, e_to, "e_index: e_label", e_techn)
!define Interact2_L(e_from, e_to, e_label, e_index) Rel_L(e_from, e_to, "e_index: e_label")
!define Interact2_L(e_from, e_to, e_label, e_techn, e_index) Rel_L(e_from, e_to, "e_index: e_label", e_techn)
!define Interact2_Left(e_from, e_to, e_label, e_index) Rel_Left(e_from, e_to, "e_index: e_label")
!define Interact2_Left(e_from, e_to, e_label, e_techn, e_index) Rel_Left(e_from, e_to, "e_index: e_label", e_techn)
!define Interact2_R(e_from, e_to, e_label, e_index) Rel_R(e_from, e_to, "e_index: e_label")
!define Interact2_R(e_from, e_to, e_label, e_techn, e_index) Rel_R(e_from, e_to, "e_index: e_label", e_techn)
!define Interact2_Right(e_from, e_to, e_label, e_index) Rel_Right(e_from, e_to, "e_index: e_label")
!define Interact2_Right(e_from, e_to, e_label, e_techn, e_index) Rel_Right(e_from, e_to, "e_index: e_label", e_techn)
!unquoted function Interact($e_from, $e_to, $e_label)
Interact2("$e_from", "$e_to", "$e_label", $index)
!$index=$inc_($index)
!endfunction
!unquoted function Interact($e_from, $e_to, $e_label, $e_techn)
Interact2("$e_from", "$e_to", "$e_label", $e_techn, $index)
!$index=$inc_($index)
!endfunction
!unquoted function Interact_Back($e_from, $e_to, $e_label)
Interact2_Back("$e_from", "$e_to", "$e_label", $index)
!$index=$inc_($index)
!endfunction
!unquoted function Interact_Back($e_from, $e_to, $e_label, $e_techn)
Interact2_Back("$e_from", "$e_to", "$e_label", $e_techn, $index)
!$index=$inc_($index)
!endfunction
!unquoted function Interact_Neighbor($e_from, $e_to, $e_label)
Interact2_Neighbor("$e_from", "$e_to", "$e_label", $index)
!$index=$inc_($index)
!endfunction
!unquoted function Interact_Neighbor($e_from, $e_to, $e_label, $e_techn)
Interact2_Neighbor("$e_from", "$e_to", "$e_label", $e_techn, $index)
!$index=$inc_($index)
!endfunction
!unquoted function Interact_Back_Neighbor($e_from, $e_to, $e_label)
Interact2_Back_Neighbor("$e_from", "$e_to", "$e_label", $index)
!$index=$inc_($index)
!endfunction
!unquoted function Interact_Back_Neighbor($e_from, $e_to, $e_label, $e_techn)
Interact2_Back_Neighbor("$e_from", "$e_to", "$e_label", $e_techn, $index)
!$index=$inc_($index)
!endfunction
!unquoted function Interact_D($e_from, $e_to, $e_label)
Interact2_D("$e_from", "$e_to", "$e_label", $index)
!$index=$inc_($index)
!endfunction
!unquoted function Interact_D($e_from, $e_to, $e_label, $e_techn)
Interact2_D("$e_from", "$e_to", "$e_label", $e_techn, $index)
!$index=$inc_($index)
!endfunction
!unquoted function Interact_Down($e_from, $e_to, $e_label)
Interact2_Down("$e_from", "$e_to", "$e_label", $index)
!$index=$inc_($index)
!endfunction
!unquoted function Interact_Down($e_from, $e_to, $e_label, $e_techn)
Interact2_Down("$e_from", "$e_to", "$e_label", $e_techn, $index)
!$index=$inc_($index)
!endfunction
!unquoted function Interact_U($e_from, $e_to, $e_label)
Interact2_U("$e_from", "$e_to", "$e_label", $index)
!$index=$inc_($index)
!endfunction
!unquoted function Interact_U($e_from, $e_to, $e_label, $e_techn)
Interact2_U("$e_from", "$e_to", "$e_label", $e_techn, $index)
!$index=$inc_($index)
!endfunction
!unquoted function Interact_Up($e_from, $e_to, $e_label)
Interact2_Up("$e_from", "$e_to", "$e_label", $index)
!$index=$inc_($index)
!endfunction
!unquoted function Interact_Up($e_from, $e_to, $e_label, $e_techn)
Interact2_Up("$e_from", "$e_to", "$e_label", $e_techn, $index)
!$index=$inc_($index)
!endfunction
!unquoted function Interact_L($e_from, $e_to, $e_label)
Interact2_L("$e_from", "$e_to", "$e_label", $index)
!$index=$inc_($index)
!endfunction
!unquoted function Interact_L($e_from, $e_to, $e_label, $e_techn)
Interact2_L("$e_from", "$e_to", "$e_label", $e_techn, $index)
!$index=$inc_($index)
!endfunction
!unquoted function Interact_Left($e_from, $e_to, $e_label)
Interact2_Left("$e_from", "$e_to", "$e_label", $index)
!$index=$inc_($index)
!endfunction
!unquoted function Interact_Left($e_from, $e_to, $e_label, $e_techn)
Interact2_Left("$e_from", "$e_to", "$e_label", $e_techn, $index)
!$index=$inc_($index)
!endfunction
!unquoted function Interact_R($e_from, $e_to, $e_label)
Interact2_R("$e_from", "$e_to", "$e_label", $index)
!$index=$inc_($index)
!endfunction
!unquoted function Interact_R($e_from, $e_to, $e_label, $e_techn)
Interact2_R("$e_from", "$e_to", "$e_label", $e_techn, $index)
!$index=$inc_($index)
!endfunction
!unquoted function Interact_Right($e_from, $e_to, $e_label)
Interact2_Right("$e_from", "$e_to", "$e_label", $index)
!$index=$inc_($index)
!endfunction
!unquoted function Interact_Right($e_from, $e_to, $e_label, $e_techn)
Interact2_Right("$e_from", "$e_to", "$e_label", $e_techn, $index)
!$index=$inc_($index)
!endfunction

@ -85,7 +85,7 @@ Rel(web_app, twitter, "Gets tweets from", "HTTPS")
* Dynamic diagram
* Import: `!includeurl https://raw.githubusercontent.com/kirchsth/C4-PlantUML/master/C4_Dynamic.puml`
**!!! Update path during pull request !!!**
* Additional Macros: all component elements are allowed
* Additional Macros: `Interact`, `Interact2`, `GetIndex`, `SetIndex`
* Deployment diagram
* Import: `!includeurl https://raw.githubusercontent.com/kirchsth/C4-PlantUML/master/C4_Deployment.puml`
**!!! Update path during pull request !!!**
@ -124,11 +124,17 @@ Source: [C4_Container Diagram Sample - techtribesjs.puml](samples/C4_Container%2
![techtribesjs](http://www.plantuml.com/plantuml/png/pLLjRzis4FxkNt78lco04x-uYRCYDUeNk5sn3btihX_Q8g34iyIM8ZMIgkEk_U-ZICKJBGjRaHOT3KWGUVVSSm_lpe-r8SeK6U_ezqpaH94CA6v8mSqQRysKiqHaA0p4ze6gPhLL97_5g4bXsE_NzZDo-nor9Wcks4U4mNdzK65iY4WumbyTi6jbCL6QNOvBAOnt6BeJdH8gjqmai25SO-TpdI0n92BwVY1JfUIsGfXBBXNySE6MsocHchjr_C_7qhgwYcGXA56xoUIENSYXZN6_4U20nWEttEvCAeggRNzbTXo14fqYRMEPez9IU8uDFXNmqgs0HhWx8_7xH9NvLcVzomV3yQn9iJyUpIwMRLnicQ4IXDzy6r8Nb-MlIUfoMlxQIEcTDfXzRIw3mSNbRD7aCfgFb_F-lmhqRKZzx5QxGCt6-zxwX5J-9_A4TnPRSC84ggzDvy7eSh4u_nA9lYiR8tCm4Y9fZBICM2aHawAJCegWzoGw71CK51HBKjFvz0Y2PR_NrWW-TJvTLKDcKfs07nh-oBVw_kYkC08RNs8JP-0Bnk_xQsxu1ZO-M--xbzGUMUQUVsTV0N3owD5KIB7BPA7XfKPr0iT67T50xink2cjs094a2XDYaEun0jVzyJ5VcZ71j56aLFouVs1o1CDWd1h58jHdxpIyNZantfv0y3zdWUA1Bolt211UOGJJFESiTZ7UY5xlIhEF-70mdBn-HZwGBgnonKG2p_-OTs4jCsi8uxFRjrUzqcxIwxsnNZ3bN6urb1HrML4V66uXHvbpx8Ads7MNWi9q0J_Obzru9oFxH1EVmKR934oAm6LCE9IPTO6oX1dxHGI5NzQWBNDfLGexXcZOOdH3yjobLxMLo-uQkKlBGYogxJ33vxlLxx_2-Tbv8w6LZOIwaO9xGuPPX4gdBBSxXB_NXob5X2Qb-HDcdXOHACnbbUWHzWhv3OsQTxDazktlD6IzdAv7m-DyDH8Lfy04nLlKHu9jBAXlcePQlqahXXFAenr89KKY5pCOdWrRnF9tUBrQzQRbDDaWKWq_HbmcODCt-YTtZsQBQ8un4rB_oPiglCmjHrJDoeGnpANGacDPmGUCl9U6N4cNSRUA6rw98rHL9KW117IS8YquKh2gi6Cq2y_73i-0vdhBZ3aO8rvdxsRyUUZakRJw9CoaHHIwpAoSkjKZAayxuSY2qzF9NOV0GujXDTMeGq6VhjSlLlzeUDAfpQvxW0G3x1v0bODpzkrI-LuZeRxmt5rk5IjltSWGpzPrxzbYDk-wGeJHg7_HWbxhZqQ4mD2NQyFcUCzicSAo58sC9Iz9A0F3SNymhhEe2WjENxxuJrcwtltIL8CWpMHVtUaNMeRPjcj-_znjgAfJgc1FqEox69ZOI9MvOghD4aUbjO2Q0NnRrV13t4WM1l8YuYo6M5Bqeu8PgHX-QIpVaBLG-sbJQ2QISbYwHFO3ior07RygZTFNAQCKnTlhq_fKVuo25Xd_6m00 "techtribesjs")
### Message Bus and Microservices
### Container Diagram - Message Bus and Microservices
Source: [C4_Container Diagram Sample - message bus.puml](samples/C4_Container%20Diagram%20Sample%20-%20message%20bus.puml)
![messagebus](http://www.plantuml.com/plantuml/png/pPPjRzis4CVV-rCStBVnx3mqoOh4gEqaQukc3v67laY3W18l4X6P94ZAgRVqku-K55aofMx6MY0qOC2yq_z-l3iVzLeReaosI7lwdd5955a0nJkIfMQEtymaPJ5V83SGsIzKDQy7HUGNHaq2UwDHRNz1lbsYrYJ6WFs5iFkoRbGO6SBZ5E7l7jWLM4qKPYNnGd1JFB2NMtH2g7XWF8OxachiVQy34aD2el-Vo4GfyL0gp4Gg5Bmup5U-uvJytRh-zxPZdPo48kEKgDLu_4JNPEWY7da1DZ0EyfNlJeMYgBhs0xDA4IZH2T8kIebA2rumUZoby4M-AWn_TqgY-rYvyvQsqV71tj7KHnmTxKyFBxfOR9kXuYIz_JLGXyVkuqCTJzod2qgljC75psRPtJqydfxvBFkpeulPw5yJz6kWVizNTuByFzvpo4-9ydpIqwnPPCK9uwX-Dix1_l7PsSjjKlGCQBQuBvpH20b6G2YC4VOOpEML2TvB64NG5NalnHWv1SNYnFGUJw6nxE-vTOB7tkD9EPd6fGMAILEOYlbGcPwwgU5JzEKuToYwhDWlUiDxjk5JfAXujgg3DLdoWh-tlXJxfwUpJDj3e_hAltAOG5J-x4DjQ1DTxRS_36_vdL0Buh86rq5ESzE7nktaH7RBRcWNcKYPiiY9M9RXy4JR-hpQtHjVloDBeYF5fDc12O-pbAYRaw4pZuV30ZnDnSEQKhjoBWWdCO99a2cGIjon5FlGR4uBHQJy0LE0QiaYz7bs893AtR9J8Sm6pJn1a89n0-8EI1IXrc3pK-41MwVB9whSRdKHtCSh6nYccMwINP4mPERoyoQG8bnBeKoE4MQQSSU4I-H6jn0i2lrRw-a7lqAdP8_UdfohB5njX9yf90OrS7Veb6ca-Qp8OLIb9ZCbXSOsdigfEoMJZ3BJJZHxCVpjm_by0-gJ4aj6BPLGCU5CvzKOFDWj84whU8EAMCeCQuCgl1f0vG1iTj1PkTba-gX8bBhNhcW3Ap12eTwwLMZe4LHrwa2uN0MVtxT79sMfh8N24fMsqVDUJjDrzrGb91GI4MrRIHfs5j51D5dFbyXBGpjnBKr0Gf6Pihd19CH0GfPelwH4ZhIxb4xAtY5LxWS3QvKINZcsqpyrwYRLc_dyKx3cwVUSy-3gxHzlveEnzpT-af6Kc8uAWyjjt0n2z8f7E_0k-FXXw0NqOWpUdr_C6zW1SgghR8Yc-1SC0n7Te_cnQ7ca-bneg5TdoVB3hQErYTLJGyDIfoXZqLDiS_oVJMTrlZg5LVEdmtzayuIADjXIn8_UPEeuOh_NY5QFx_oQpvJX66yDTvqmIf7VN0qsPj9hovujqdy0 "messagebus")
![Container Diagram - messagebus](http://www.plantuml.com/plantuml/png/pPPjRzis4CVV-rCStBVnx3mqoOh4gEqaQukc3v67laY3W18l4X6P94ZAgRVqku-K55aofMx6MY0qOC2yq_z-l3iVzLeReaosI7lwdd5955a0nJkIfMQEtymaPJ5V83SGsIzKDQy7HUGNHaq2UwDHRNz1lbsYrYJ6WFs5iFkoRbGO6SBZ5E7l7jWLM4qKPYNnGd1JFB2NMtH2g7XWF8OxachiVQy34aD2el-Vo4GfyL0gp4Gg5Bmup5U-uvJytRh-zxPZdPo48kEKgDLu_4JNPEWY7da1DZ0EyfNlJeMYgBhs0xDA4IZH2T8kIebA2rumUZoby4M-AWn_TqgY-rYvyvQsqV71tj7KHnmTxKyFBxfOR9kXuYIz_JLGXyVkuqCTJzod2qgljC75psRPtJqydfxvBFkpeulPw5yJz6kWVizNTuByFzvpo4-9ydpIqwnPPCK9uwX-Dix1_l7PsSjjKlGCQBQuBvpH20b6G2YC4VOOpEML2TvB64NG5NalnHWv1SNYnFGUJw6nxE-vTOB7tkD9EPd6fGMAILEOYlbGcPwwgU5JzEKuToYwhDWlUiDxjk5JfAXujgg3DLdoWh-tlXJxfwUpJDj3e_hAltAOG5J-x4DjQ1DTxRS_36_vdL0Buh86rq5ESzE7nktaH7RBRcWNcKYPiiY9M9RXy4JR-hpQtHjVloDBeYF5fDc12O-pbAYRaw4pZuV30ZnDnSEQKhjoBWWdCO99a2cGIjon5FlGR4uBHQJy0LE0QiaYz7bs893AtR9J8Sm6pJn1a89n0-8EI1IXrc3pK-41MwVB9whSRdKHtCSh6nYccMwINP4mPERoyoQG8bnBeKoE4MQQSSU4I-H6jn0i2lrRw-a7lqAdP8_UdfohB5njX9yf90OrS7Veb6ca-Qp8OLIb9ZCbXSOsdigfEoMJZ3BJJZHxCVpjm_by0-gJ4aj6BPLGCU5CvzKOFDWj84whU8EAMCeCQuCgl1f0vG1iTj1PkTba-gX8bBhNhcW3Ap12eTwwLMZe4LHrwa2uN0MVtxT79sMfh8N24fMsqVDUJjDrzrGb91GI4MrRIHfs5j51D5dFbyXBGpjnBKr0Gf6Pihd19CH0GfPelwH4ZhIxb4xAtY5LxWS3QvKINZcsqpyrwYRLc_dyKx3cwVUSy-3gxHzlveEnzpT-af6Kc8uAWyjjt0n2z8f7E_0k-FXXw0NqOWpUdr_C6zW1SgghR8Yc-1SC0n7Te_cnQ7ca-bneg5TdoVB3hQErYTLJGyDIfoXZqLDiS_oVJMTrlZg5LVEdmtzayuIADjXIn8_UPEeuOh_NY5QFx_oQpvJX66yDTvqmIf7VN0qsPj9hovujqdy0 "Container Diagram - messagebus")
### Dynamic Diagram - Message Bus and Microservices
Source: [C4_Dynamic Diagram Sample - message bus.puml](samples/C4_Dynamic%20Diagram%20Sample%20-%20message%20bus.puml)
![Dynamic diagram - messagebus](http://www.plantuml.com/plantuml/png/nLdlR-Eu4VtklsBYCv0ObpYNeFsImmANnC7jNhr9pZzmw2U3biOsKObaIIfUj-Z_tg5eCOgTRIa7PmTOBpMQUM_U6ygGmL-CPTeMUTOwuIB9YXGBdS7IMcLkBYyrM_KMt2wBMM5G9r9O5BQNoFnoo1EcK_d8KM5sUV-NY-UC2JlvEhZCcR6eAJIzbxcImbKeHt0AXQ3Id09WbmXpcMLonSK2CYuGc4ZXpMsk3Qqa43LaCc5PjYQCgatO9Q2xeqGgl84lrAXcYULI6E22i05TI6bky1oCdDiLqmXcJRtc83KuROpQq3r2UTOyPtfTjcGAfQIshatCq7LdRg1FgaLgG8gorPIpXMOv6CSE5q0GxYzGkfX2gJAlSelUWCQCMKoTM8Ahrt7XGIl8hLB2DHWkolbyis_aLBsPymeYtDeK9vM9LQfpm1aeKcg95Ib7aP2dOqoMWjCOIWr2YWiR8bxSERLhUEf5oiAMQpalDON6Ktp1J2e_PdHiHDTV2vRp91Z9XTKoBH8qSCOAAtDcURa1kY2AV8QQEkEr6TzKugh1dtLle32K5Qg1wfF2-yn9shVpxPfhAlAtA5V0306_gOmdd9p1EJcMdcygHcY_k3nNOD1lLq7ERm7_MajR-3IVKHhqHXV54utCR1AS9sKf_V_3__rhjKxcXIYTW0u1JSywBomhQ1uTOr5zkkgs04uqsa8ByBVWHt-lTK9Zhee9frFIVxggGmQr7O6hQPdW0AlSr-WsM408HdISw6cbTTDOHsOfV08FLmVsKZQUlYsjAtBrMzIdOQXn1fxu0TUs0axdMkRdW5ChtMV6PfYvXTSFGyosSjgRUpTLThlR1BTyc1eIXBfkQvTgUiUIVyJe28dnOg8OWg8OgdXPZyWNovdKKT92ShoyUAOWiHbb_FIQQTsks6-UyQeRaiTBxqV9xUybiTzCLZzUohjiSYNYn51Yl9veXY0fXYf-G9CeJPEz14sQgPbyR40J5IT5xQT5DHIZFZYOGPIQmLvY1isq33usc07ERPmOIepN4yqG9CLGnGze6ALfk9UWOJCrmuyDQCWNoxW9XSp6Ya9blAfG4Z-aGlopa1PJ2E-huLT4fmBgUAJE1g0BhVhlXlOchqrSPQPV1BAER_0xxxRTDo-lU_NZ0qvGiyv2MSCU_rUJ_XqlpZcVUoZxF5jJ3ttLCOmChrEHPeRyGnaQ61kR6YgFjaCRk-kA3cPnHA_nc_UuPlTZ3UuVpjH-SoFx7p1l_pxbIaJRHxa7T93Ocflegewo2IUnBauEP-6akN-JOsp2YOesJntGFRM7VUeecsyGwz_WSFODchitECRcSx-veksZt0CwI6pDJNHLHzc4mrWNXuUpSDZSl-4nDg7_KHdhdqi-e8UEhhcFhkpFsuY3sxy_JSRJyTFpjF_qnsFh53QHsz5qzBU7yVtdiswLzCUNyUVfuE7NXyS-1LlFg8qKPqbXhCnHdyDzMBLleGgtkwrHUUWvlPE5I9bUdoLNb54bazAvr3bpxRIxy6_g6-2-ElayOqhLas-LE-VpoHJ_ZRqmasYkx3dSYaMHCUt2j-wuseGM35W9EHDiWM2No3KeBUSymtPtYwsgc1hKBpp1ElN8XohQSnWfxSwQxwIqBZXU8YZ9XGKv1vOaQ0oGij05y9hGRUASigczwQmm1FNLNy5TOHpoaCrct7xzlMJHJ1WbjIsnAPqBHuGlAApPWTMuEH6l2HfMiRgYOJ5RjvrQZSoY0U4wpRZ1559cMKaMm40LMac3ktpk3DhMk6xTTPtd_eVBtkF3s2sVjNpXAN59lM22czAOYnM5mC6KH7EMy8oMkrJzsUkmqbbzJdtgTyPCIVUaMP8XN5qdxcfafKOJDH223t8TVjssEi7NzUZtGGsRLSxzYvnxGMq8kzmFMHQ6zUeeIs4famR6Ef9WQqdfk1ze-E4oj59J1smc2xlP962NpCAIlI1zA8K2KwBx3nt56fuhSalg53Mik5s-dirMYzhJxf_CYKhB3RFafdggmEbSk4u-ZyVF8m8FrMNDzaCMKDuVpIlSRwEdnyiTp5susiO8TdZJkIXn-dVtX4225IPypfFt95___7eO_bEtrqkMJ2pSrhGIohFjt9dkZ-WfzDFFqExrUlJFimDtbU1LjBQ_pNTxVli5C4AHrjmeIdl2_AGJmSnQ96vHw_BYYcITXW1rNMlrnwjQ6nErqqCrKTfqSwxpYlHxRDsBQ-TXW7px5RRxnREdg59JZUKTu11wVzxRMArJy7DVkwSLLtvIhL6LzTVkzqJvX_33WgxV2De2hJteGKi5MLSJ1l0BDL7asNy1 "Dynamic diagram - messagebus")
### Deployment Diagram

@ -35,7 +35,7 @@ Source: [C4_Context Diagram Sample - bigbankplc-landscape.puml](C4_Context%20Dia
Source: [C4_Dynamic Diagram Sample - bigbankplc.puml](C4_Dynamic%20Diagram%20Sample%20-%20bigbankplc.puml)
![Dynamic diagram for Internet Banking System - API Application](http://www.plantuml.com/plantuml/png/hPHRR_Cs38Rl_IkutgmPscH9khOBTcWEnPgXXw1EE-pAK6JQ5YfB1YKto8Rzzr5EiYG32dnVaJjQbCI7Br_vndb1lYvrz8qoKjSfrgIXyBvoWqw7nBATAr_KYzeXIMiy6j-MjkoyAPA5yqLdV74-qyBubuVxJYcSH-AbPB8oebIoNOMRluNQy9cIpu8l43AhjLqgauDM1a6O50xIYXn75hWcQ2k5rYk-Oyi7Fuqlzahy4d4kzbHBNvFwYzgRzLU5om74AZTJ4tdbDS9mDeLXLMabXLVMm3bizaRH_V3FfvTvyiTqVfVSt_vs-pWvRKNHc1iMZ4YJnUcKUoU3VYJC6wF7AswrJ9A9y68X72P95rFCBkKPd6pNJZX-HjqK4ngson3B0aiHih6tX0w2k42OA-TfZQPCPgbiuZCeX2im1L6pEiPlwILX6Zw5TcSWf4JdMAsSFz3BzabhH_yHUyonnfd8SK-L9EdriylhNf_nrXlEmuvzuGBvx-9Tn99KvPlv3KrUQq4XCoFxhb9qm7C3cpKZtGB0Oaq06JjYBOlogp1hMJjlIoG7xqg4CufWYGjOa5qwf8D-af6jJIfezL5ZFEY3ZlhTh9lrVc0upXnqqeA_8u2nBIjhqFWllJ16MHEJ_tUGn_-z_F7ggiSrjidTjSseAmgDZr2O0vKEbQ1W5qo38ewj6queTe0iXCd3HoMSMrfATrF-37tpA8ASPBL6OlXCN6JTwu39EHuNxB9xy0-lOtX6v_-N7ORdl7Qnsv8pDeU7mzzWmPehmFyJyVj8dbLU-C-Qz0WzTmSGrujIURV_g1Y_CNhyzDYvcyzdCVCoxH54FeR9UWCO2ysKoWrt_mLCJriGRBsdwn6gVSM_hpy0XngbX-yW8rjkNB4iaB29ZIWHVePV6sqdep6ptg19wrB_2m00 "Dynamic diagram for Internet Banking System - API Application")
![Dynamic diagram for Internet Banking System - API Application](http://www.plantuml.com/plantuml/png/nLdXRzks4_tkl-AIdu76lpd9adPj5o1OaxXeCxXfOCSTzacWfRDDb28raegR3VlVTvH4ntBNJRGpEnzQchntzzwxio23RunbskQfQErn6OiymLmBc5cRcRFZOytcHrDkP_auDwXZ9IrAUnIhz7Z0OwOJTSCnGt5yzUBmLZ1fHn_wnoap5ZLjHLSgpPHqYCmLU0Qv96XA6s1d21CbX9fpEGN19GAJ2TIEkJQqKa2bGQYO2V50EJnD-Be0dGvZbU4PN1DHpMBBbJJ09UK6T5kPvWQxODJ4pfb6C0_4DGMbmMbZH4CVKPPRpLEc7mfA9iyofQsZYG8TEtC6FL8j4mDA5bGJpgQQfM1STJW4Ia5_IoLfBqELYLBbIda36WMpc91ObsuPnsMPrATSWL9UWuiFJWD-iJKvdflf-XIBemeSUnDzg7F06IWJeiJoXAECoTCxZ6UIkYuA3LB9G-jtAd5TecjuKefKkItMQk8qFH9Fy1w5oiesewj6vNeFagKyNXZ9fTKgoMCqSC1ogr9cUJ407P1vEaPDpFXIZy-yED_uWywPcvi45cWWV9oNFdEIzgMxYZabK7b4iHB62FWb4ppcv0nEoB6aMo66QAzTd0COBCTLEkVhYTyjXKshi3A_CwYcY_PZZSnK0SwJ0ah__-zV_rgjlKak2oUWJOcYW_Oz4pdresqiPkSddHR0daQRQmdb4NnNdhNsK2OUJ7dQHVdpa-MK2xLjYVEe2709VUpZxceoltmqekr4HrvhHQojH0BdKAPRJbnAgJojGskA2BzI-jcYgSqCt2iRl3GA64sqIhk0aLNkNy76ADoYr0y352in-zNPcO_UxuJaBRvCWGKMk4xhwrBH9Oi_Dz7X0uF5bC0GHHwnYQmRvDFPMEb6qkh1WV8yE4pY0hLvzyAqrX1hzpD8TK3n0EczHd9xQqdiXSdg1KZvksfgBfk9yO71UWWOA8aG6pPer4ZJQ2r1ep0reyqQDCgQISdMqv85YiasR4o_aPh-McBwOLhwcpMcZnFRJ8mF3DP3m419XDYmGOD6cWPh2Hg4gHbirg01dywQTSX7XYloo11L10biKYv_ovN511Rlgvx1GTidQfUPsbM23hIMVpViLt6KrosjgXQ-MBia-8rtsqxzvNKTFhJoWiAOULWWntyYMRxZDNEkZDsAVPvPi8SbQXT6-jUffcRw-EqPwYk6c-gHEvlGO7VheAtEx0O-E_XkpUurDRYtFLDxuKRsmirx0fvgBXlRHx5RTD1L2pUHK3iPmb5J5qVRit0Kxjze5qCuoXgRbstHlMmD-xAT35-_gN_zxTdN3tUllulXSx-v6jj7iLjqq5KBDv5GEnd2GLCN1zkpS13kts07GrZ-g6pidmlUbeUUMxYF3lPVUUakOgtEOvjh_hi-gcxtFd6Sdy6GJ-MrR5bk1SB5xJLSPEwIZHMg3g6ARRNw5xz-7Dr5lrpVlO_wRz-zlUaTT5gjAtzvsHiV568asaicFtCv7HQNe57KOvQDcS4eEi449ozZakJtdBm1Yg8O4-2tOHZFC6NkT6YLHWEvGGqQfznONLBZSg9qMgoxC6DcLbukpb1QppxMcBYFJ9Wki3X6Oq2eANr06n_jTnxPVulxaDO2RzaKbro9ejFdavUlJvyJlJBWq4Ki6-UO_ypksJ3MFBF5zUA5dEQ2QNTogzKzJqWL4yBVnte2C2uPB2QB2MuVm2g8SsDLYjh0FMSEmpNCSGnZhURaJarFTAbocJ3zy2rXrEYQekSdavF9wGz4ZavgIZhmHmjWSRFVDE4GurmJymMGslzz_EEhLwTKmny-fYrQdMad_1APhBbKSsBvRjxGw3e4fmc8PqnEtOUC6JDNEbbqUHtsvPV2sQcL4AY9_8Izc9oyTZJfZDe5ZwTBv3zyke816hjoUY64cfTJR3npeatBUlChMb3oSkJ_RDMVBEjEwbC8pySfjsRvQqK2Yb4VVhmvVdztTpianfxl4tZz5BDsnGJnvERYyTc0oK47t6Wtz3QaNi13qA30sCB_mJtngzcOpr1ZiPOiHJY7dmf_UvTNnFODoYHFnLy0 "Dynamic diagram for Internet Banking System - API Application")
### Deployment Diagram

@ -14,7 +14,7 @@ Container_Boundary(InternetBankingSystem__APIApplication__31f1f25, "API Applicat
Component(InternetBankingSystem__APIApplication__SecurityComponent__10c9772, "Security Component", "Spring Bean", "Provides functionality related to signing in, changing passwords, etc.")
Component(InternetBankingSystem__APIApplication__SignInController__1fa4f18, "Sign In Controller", "Spring MVC Rest Controller", "Allows users to sign in to the Internet Banking System.")
}
Rel_Right(InternetBankingSystem__SinglePageApplication__23f6823, InternetBankingSystem__APIApplication__SignInController__1fa4f18, "1: Submits credentials to", "JSON/HTTPS")
Rel(InternetBankingSystem__APIApplication__SignInController__1fa4f18, InternetBankingSystem__APIApplication__SecurityComponent__10c9772, "2: Calls isAuthenticated() on")
Rel_Right(InternetBankingSystem__APIApplication__SecurityComponent__10c9772, InternetBankingSystem__Database__1edef6c, "3: select * from users where username = ?", "JDBC")
Interact_Right(InternetBankingSystem__SinglePageApplication__23f6823, InternetBankingSystem__APIApplication__SignInController__1fa4f18, "Submits credentials to", "JSON/HTTPS")
Interact(InternetBankingSystem__APIApplication__SignInController__1fa4f18, InternetBankingSystem__APIApplication__SecurityComponent__10c9772, "Calls isAuthenticated() on")
Interact_Right(InternetBankingSystem__APIApplication__SecurityComponent__10c9772, InternetBankingSystem__Database__1edef6c, "select * from users where username = ?", "JDBC")
@enduml

@ -0,0 +1,39 @@
@startuml
!includeurl https://raw.githubusercontent.com/kirchsth/C4-PlantUML/master/C4_Dynamic.puml
' uncomment the following line and comment the first to use locally
' !include <C4/C4_Dynamic>
LAYOUT_TOP_DOWN
' LAYOUT_AS_SKETCH()
LAYOUT_WITH_LEGEND()
Person(customer, Customer, "A customer")
System_Boundary(c1, "Customer Information") {
Container(app, "Customer Application", "Javascript, Angular", "Allows customers to manage their profile")
Container(customer_service, "Customer Service", "Java, Spring Boot", "The point of access for customer information")
Container(message_bus, "Message Bus", "RabbitMQ", "Transport for business events")
Container(reporting_service, "Reporting Service", "Ruby", "Creates normalised data for reporting purposes")
Container(audit_service, "Audit Service", "C#/.NET", "Provides organisation-wide auditing facilities")
ContainerDb(customer_db, "Customer Database", "Oracle 12c", "Stores customer information")
ContainerDb(reporting_db, "Reporting Database", "MySQL", "Stores a normalized version of all business data for ad hoc reporting purposes")
Container(audit_store, "Audit Store", "Event Store", "Stores information about events that have happened")
}
'simple order with Interact
Interact(customer, app, "Updates his profile using", "HTTPS")
Interact(app, customer_service, "Updates customer information using", "JSON/HTTPS")
Interact(customer_service, customer_db, "Stores data in", "JDBC")
'specific order with Interact2; GetIndex(0)..change auto increment value to 0; "..."..custom index format
Interact2_Right(customer_service, message_bus, "Sends customer update events to", "async", "GetIndex(0)-1")
'GetIndex().. increment +1
Interact2_Up(customer_service, app, "Confirm update to", "async", "GetIndex()-2")
Interact2(message_bus, reporting_service, "Sends customer update events to", "async", "GetIndex()-1")
Interact2(reporting_service, reporting_db, "Stores data in","GetIndex()-1")
' specify a new index
SetIndex(5)
Interact2(message_bus, audit_service, "Sends customer update events to", "async", "GetIndex()-2")
Interact2(audit_service, audit_store, "Stores events in","GetIndex()-2")
@enduml
Loading…
Cancel
Save