├── .github ├── funding.yml ├── issue_template.md ├── pull_request_template.md └── stale.yml ├── .gitignore ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md └── diagrams ├── README.md ├── api-gateway.excalidraw ├── caching.excalidraw ├── cap.excalidraw ├── cdn.excalidraw ├── circuit-breaker.excalidraw ├── clustering.excalidraw ├── consistent-hashing.excalidraw ├── cqrs.excalidraw ├── database-replication.excalidraw ├── db-dbms.excalidraw ├── disaster-recovery.excalidraw ├── distributed-transactions.excalidraw ├── domain-name-system.excalidraw ├── enterprise-service-bus.excalidraw ├── event-driven-architecture.excalidraw ├── event-sourcing.excalidraw ├── federated-database.excalidraw ├── geohashing-quadtrees.excalidraw ├── indexes.excalidraw ├── library.excalidrawlib ├── load-balancing.excalidraw ├── lp-ws-sse.excalidraw ├── message-brokers.excalidraw ├── message-queues.excalidraw ├── monoliths-microservices.excalidraw ├── n-tier-architecture.excalidraw ├── netflix.excalidraw ├── oauth-openid-connect.excalidraw ├── osi.excalidraw ├── pacelc.excalidraw ├── proxy.excalidraw ├── pubsub.excalidraw ├── rate-limiting.excalidraw ├── scaling.excalidraw ├── service-discovery.excalidraw ├── sharding.excalidraw ├── sso.excalidraw ├── tcp-udp.excalidraw ├── transactions.excalidraw ├── twitter.excalidraw ├── uber.excalidraw ├── url-shortener.excalidraw ├── virtualization-containerization.excalidraw └── whatsapp.excalidraw /.github/funding.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | custom: ['buymeacoffee.com/karanps', 'paypal.me/karanps686'] 4 | -------------------------------------------------------------------------------- /.github/issue_template.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Issue 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | --- 8 | 9 | **Is your feature request related to a problem? Please describe.** 10 | 11 | 12 | 13 | **Describe the solution you'd like** 14 | 15 | 16 | 17 | **Additional context** 18 | 19 | 20 | -------------------------------------------------------------------------------- /.github/pull_request_template.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | 4 | -------------------------------------------------------------------------------- /.github/stale.yml: -------------------------------------------------------------------------------- 1 | # Number of days of inactivity before an Issue or Pull Request becomes stale. 2 | daysUntilStale: 7 3 | # Number of days of inactivity before an Issue or Pull Request with the stale label is closed. 4 | daysUntilClose: 7 5 | # Issues or Pull Requests with these labels will never be considered stale. 6 | exemptLabels: 7 | - improvement 8 | - "good first issue" 9 | - "help wanted" 10 | - question 11 | - misc 12 | # Label to use when marking an issue as stale. 13 | staleLabel: stale 14 | # Comment to post when marking an issue as stale. 15 | markComment: > 16 | This issue has been automatically marked as stale because it has not had 17 | recent activity. It will be closed if no further activity occurs. Thank you 18 | for your contributions. 19 | # Comment to post when closing a stale issue. 20 | closeComment: false 21 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_STORE 2 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | We as members, contributors, and leaders pledge to make participation in our 6 | community a harassment-free experience for everyone, regardless of age, body 7 | size, visible or invisible disability, ethnicity, sex characteristics, gender 8 | identity and expression, level of experience, education, socio-economic status, 9 | nationality, personal appearance, race, religion, or sexual identity 10 | and orientation. 11 | 12 | We pledge to act and interact in ways that contribute to an open, welcoming, 13 | diverse, inclusive, and healthy community. 14 | 15 | ## Our Standards 16 | 17 | Examples of behavior that contributes to a positive environment for our 18 | community include: 19 | 20 | - Demonstrating empathy and kindness toward other people 21 | - Being respectful of differing opinions, viewpoints, and experiences 22 | - Giving and gracefully accepting constructive feedback 23 | - Accepting responsibility and apologizing to those affected by our mistakes, 24 | and learning from the experience 25 | - Focusing on what is best not just for us as individuals, but for the 26 | overall community 27 | 28 | Examples of unacceptable behavior include: 29 | 30 | - The use of sexualized language or imagery, and sexual attention or 31 | advances of any kind 32 | - Trolling, insulting or derogatory comments, and personal or political attacks 33 | - Public or private harassment 34 | - Publishing others' private information, such as a physical or email 35 | address, without their explicit permission 36 | - Other conduct which could reasonably be considered inappropriate in a 37 | professional setting 38 | 39 | ## Enforcement Responsibilities 40 | 41 | Community leaders are responsible for clarifying and enforcing our standards of 42 | acceptable behavior and will take appropriate and fair corrective action in 43 | response to any behavior that they deem inappropriate, threatening, offensive, 44 | or harmful. 45 | 46 | Community leaders have the right and responsibility to remove, edit, or reject 47 | comments, commits, code, wiki edits, issues, and other contributions that are 48 | not aligned to this Code of Conduct, and will communicate reasons for moderation 49 | decisions when appropriate. 50 | 51 | ## Scope 52 | 53 | This Code of Conduct applies within all community spaces, and also applies when 54 | an individual is officially representing the community in public spaces. 55 | Examples of representing our community include using an official e-mail address, 56 | posting via an official social media account, or acting as an appointed 57 | representative at an online or offline event. 58 | 59 | ## Enforcement 60 | 61 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 62 | reported to the community leaders responsible for enforcement at 63 | contact@karanpratapsingh.com. 64 | All complaints will be reviewed and investigated promptly and fairly. 65 | 66 | All community leaders are obligated to respect the privacy and security of the 67 | reporter of any incident. 68 | 69 | ## Enforcement Guidelines 70 | 71 | Community leaders will follow these Community Impact Guidelines in determining 72 | the consequences for any action they deem in violation of this Code of Conduct: 73 | 74 | ### 1. Correction 75 | 76 | **Community Impact**: Use of inappropriate language or other behavior deemed 77 | unprofessional or unwelcome in the community. 78 | 79 | **Consequence**: A private, written warning from community leaders, providing 80 | clarity around the nature of the violation and an explanation of why the 81 | behavior was inappropriate. A public apology may be requested. 82 | 83 | ### 2. Warning 84 | 85 | **Community Impact**: A violation through a single incident or series 86 | of actions. 87 | 88 | **Consequence**: A warning with consequences for continued behavior. No 89 | interaction with the people involved, including unsolicited interaction with 90 | those enforcing the Code of Conduct, for a specified period of time. This 91 | includes avoiding interactions in community spaces as well as external channels 92 | like social media. Violating these terms may lead to a temporary or 93 | permanent ban. 94 | 95 | ### 3. Temporary Ban 96 | 97 | **Community Impact**: A serious violation of community standards, including 98 | sustained inappropriate behavior. 99 | 100 | **Consequence**: A temporary ban from any sort of interaction or public 101 | communication with the community for a specified period of time. No public or 102 | private interaction with the people involved, including unsolicited interaction 103 | with those enforcing the Code of Conduct, is allowed during this period. 104 | Violating these terms may lead to a permanent ban. 105 | 106 | ### 4. Permanent Ban 107 | 108 | **Community Impact**: Demonstrating a pattern of violation of community 109 | standards, including sustained inappropriate behavior, harassment of an 110 | individual, or aggression toward or disparagement of classes of individuals. 111 | 112 | **Consequence**: A permanent ban from any sort of public interaction within 113 | the community. 114 | 115 | ## Attribution 116 | 117 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], 118 | version 2.0, available at 119 | https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. 120 | 121 | Community Impact Guidelines were inspired by [Mozilla's code of conduct 122 | enforcement ladder](https://github.com/mozilla/diversity). 123 | 124 | [homepage]: https://www.contributor-covenant.org 125 | 126 | For answers to common questions about this code of conduct, see the FAQ at 127 | https://www.contributor-covenant.org/faq. Translations are available at 128 | https://www.contributor-covenant.org/translations. 129 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing 2 | 3 | Please feel free to contribute to the quality of this content by submitting PRs for improvements to code snippets, explanations, etc. If there's any doubt, **open an issue to ask about it before submitting a PR**. 4 | 5 | However, if you choose to contribute content (not just typo corrections) to this repo, you agree that you're giving me a non-exclusive license to use that content, as I (and my publisher) deem appropriate. You probably guessed that already, but I just have to make sure the lawyers are happy by explicitly stating it. 6 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Attribution-NonCommercial-NoDerivatives 4.0 International 2 | 3 | ======================================================================= 4 | 5 | Creative Commons Corporation ("Creative Commons") is not a law firm and 6 | does not provide legal services or legal advice. Distribution of 7 | Creative Commons public licenses does not create a lawyer-client or 8 | other relationship. Creative Commons makes its licenses and related 9 | information available on an "as-is" basis. Creative Commons gives no 10 | warranties regarding its licenses, any material licensed under their 11 | terms and conditions, or any related information. Creative Commons 12 | disclaims all liability for damages resulting from their use to the 13 | fullest extent possible. 14 | 15 | Using Creative Commons Public Licenses 16 | 17 | Creative Commons public licenses provide a standard set of terms and 18 | conditions that creators and other rights holders may use to share 19 | original works of authorship and other material subject to copyright 20 | and certain other rights specified in the public license below. The 21 | following considerations are for informational purposes only, are not 22 | exhaustive, and do not form part of our licenses. 23 | 24 | Considerations for licensors: Our public licenses are 25 | intended for use by those authorized to give the public 26 | permission to use material in ways otherwise restricted by 27 | copyright and certain other rights. Our licenses are 28 | irrevocable. Licensors should read and understand the terms 29 | and conditions of the license they choose before applying it. 30 | Licensors should also secure all rights necessary before 31 | applying our licenses so that the public can reuse the 32 | material as expected. Licensors should clearly mark any 33 | material not subject to the license. This includes other CC- 34 | licensed material, or material used under an exception or 35 | limitation to copyright. More considerations for licensors: 36 | wiki.creativecommons.org/Considerations_for_licensors 37 | 38 | Considerations for the public: By using one of our public 39 | licenses, a licensor grants the public permission to use the 40 | licensed material under specified terms and conditions. If 41 | the licensor's permission is not necessary for any reason--for 42 | example, because of any applicable exception or limitation to 43 | copyright--then that use is not regulated by the license. Our 44 | licenses grant only permissions under copyright and certain 45 | other rights that a licensor has authority to grant. Use of 46 | the licensed material may still be restricted for other 47 | reasons, including because others have copyright or other 48 | rights in the material. A licensor may make special requests, 49 | such as asking that all changes be marked or described. 50 | Although not required by our licenses, you are encouraged to 51 | respect those requests where reasonable. More considerations 52 | for the public: 53 | wiki.creativecommons.org/Considerations_for_licensees 54 | 55 | ======================================================================= 56 | 57 | Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 58 | International Public License 59 | 60 | By exercising the Licensed Rights (defined below), You accept and agree 61 | to be bound by the terms and conditions of this Creative Commons 62 | Attribution-NonCommercial-NoDerivatives 4.0 International Public 63 | License ("Public License"). To the extent this Public License may be 64 | interpreted as a contract, You are granted the Licensed Rights in 65 | consideration of Your acceptance of these terms and conditions, and the 66 | Licensor grants You such rights in consideration of benefits the 67 | Licensor receives from making the Licensed Material available under 68 | these terms and conditions. 69 | 70 | 71 | Section 1 -- Definitions. 72 | 73 | a. Adapted Material means material subject to Copyright and Similar 74 | Rights that is derived from or based upon the Licensed Material 75 | and in which the Licensed Material is translated, altered, 76 | arranged, transformed, or otherwise modified in a manner requiring 77 | permission under the Copyright and Similar Rights held by the 78 | Licensor. For purposes of this Public License, where the Licensed 79 | Material is a musical work, performance, or sound recording, 80 | Adapted Material is always produced where the Licensed Material is 81 | synched in timed relation with a moving image. 82 | 83 | b. Copyright and Similar Rights means copyright and/or similar rights 84 | closely related to copyright including, without limitation, 85 | performance, broadcast, sound recording, and Sui Generis Database 86 | Rights, without regard to how the rights are labeled or 87 | categorized. For purposes of this Public License, the rights 88 | specified in Section 2(b)(1)-(2) are not Copyright and Similar 89 | Rights. 90 | 91 | c. Effective Technological Measures means those measures that, in the 92 | absence of proper authority, may not be circumvented under laws 93 | fulfilling obligations under Article 11 of the WIPO Copyright 94 | Treaty adopted on December 20, 1996, and/or similar international 95 | agreements. 96 | 97 | d. Exceptions and Limitations means fair use, fair dealing, and/or 98 | any other exception or limitation to Copyright and Similar Rights 99 | that applies to Your use of the Licensed Material. 100 | 101 | e. Licensed Material means the artistic or literary work, database, 102 | or other material to which the Licensor applied this Public 103 | License. 104 | 105 | f. Licensed Rights means the rights granted to You subject to the 106 | terms and conditions of this Public License, which are limited to 107 | all Copyright and Similar Rights that apply to Your use of the 108 | Licensed Material and that the Licensor has authority to license. 109 | 110 | g. Licensor means the individual(s) or entity(ies) granting rights 111 | under this Public License. 112 | 113 | h. NonCommercial means not primarily intended for or directed towards 114 | commercial advantage or monetary compensation. For purposes of 115 | this Public License, the exchange of the Licensed Material for 116 | other material subject to Copyright and Similar Rights by digital 117 | file-sharing or similar means is NonCommercial provided there is 118 | no payment of monetary compensation in connection with the 119 | exchange. 120 | 121 | i. Share means to provide material to the public by any means or 122 | process that requires permission under the Licensed Rights, such 123 | as reproduction, public display, public performance, distribution, 124 | dissemination, communication, or importation, and to make material 125 | available to the public including in ways that members of the 126 | public may access the material from a place and at a time 127 | individually chosen by them. 128 | 129 | j. Sui Generis Database Rights means rights other than copyright 130 | resulting from Directive 96/9/EC of the European Parliament and of 131 | the Council of 11 March 1996 on the legal protection of databases, 132 | as amended and/or succeeded, as well as other essentially 133 | equivalent rights anywhere in the world. 134 | 135 | k. You means the individual or entity exercising the Licensed Rights 136 | under this Public License. Your has a corresponding meaning. 137 | 138 | 139 | Section 2 -- Scope. 140 | 141 | a. License grant. 142 | 143 | 1. Subject to the terms and conditions of this Public License, 144 | the Licensor hereby grants You a worldwide, royalty-free, 145 | non-sublicensable, non-exclusive, irrevocable license to 146 | exercise the Licensed Rights in the Licensed Material to: 147 | 148 | a. reproduce and Share the Licensed Material, in whole or 149 | in part, for NonCommercial purposes only; and 150 | 151 | b. produce and reproduce, but not Share, Adapted Material 152 | for NonCommercial purposes only. 153 | 154 | 2. Exceptions and Limitations. For the avoidance of doubt, where 155 | Exceptions and Limitations apply to Your use, this Public 156 | License does not apply, and You do not need to comply with 157 | its terms and conditions. 158 | 159 | 3. Term. The term of this Public License is specified in Section 160 | 6(a). 161 | 162 | 4. Media and formats; technical modifications allowed. The 163 | Licensor authorizes You to exercise the Licensed Rights in 164 | all media and formats whether now known or hereafter created, 165 | and to make technical modifications necessary to do so. The 166 | Licensor waives and/or agrees not to assert any right or 167 | authority to forbid You from making technical modifications 168 | necessary to exercise the Licensed Rights, including 169 | technical modifications necessary to circumvent Effective 170 | Technological Measures. For purposes of this Public License, 171 | simply making modifications authorized by this Section 2(a) 172 | (4) never produces Adapted Material. 173 | 174 | 5. Downstream recipients. 175 | 176 | a. Offer from the Licensor -- Licensed Material. Every 177 | recipient of the Licensed Material automatically 178 | receives an offer from the Licensor to exercise the 179 | Licensed Rights under the terms and conditions of this 180 | Public License. 181 | 182 | b. No downstream restrictions. You may not offer or impose 183 | any additional or different terms or conditions on, or 184 | apply any Effective Technological Measures to, the 185 | Licensed Material if doing so restricts exercise of the 186 | Licensed Rights by any recipient of the Licensed 187 | Material. 188 | 189 | 6. No endorsement. Nothing in this Public License constitutes or 190 | may be construed as permission to assert or imply that You 191 | are, or that Your use of the Licensed Material is, connected 192 | with, or sponsored, endorsed, or granted official status by, 193 | the Licensor or others designated to receive attribution as 194 | provided in Section 3(a)(1)(A)(i). 195 | 196 | b. Other rights. 197 | 198 | 1. Moral rights, such as the right of integrity, are not 199 | licensed under this Public License, nor are publicity, 200 | privacy, and/or other similar personality rights; however, to 201 | the extent possible, the Licensor waives and/or agrees not to 202 | assert any such rights held by the Licensor to the limited 203 | extent necessary to allow You to exercise the Licensed 204 | Rights, but not otherwise. 205 | 206 | 2. Patent and trademark rights are not licensed under this 207 | Public License. 208 | 209 | 3. To the extent possible, the Licensor waives any right to 210 | collect royalties from You for the exercise of the Licensed 211 | Rights, whether directly or through a collecting society 212 | under any voluntary or waivable statutory or compulsory 213 | licensing scheme. In all other cases the Licensor expressly 214 | reserves any right to collect such royalties, including when 215 | the Licensed Material is used other than for NonCommercial 216 | purposes. 217 | 218 | 219 | Section 3 -- License Conditions. 220 | 221 | Your exercise of the Licensed Rights is expressly made subject to the 222 | following conditions. 223 | 224 | a. Attribution. 225 | 226 | 1. If You Share the Licensed Material, You must: 227 | 228 | a. retain the following if it is supplied by the Licensor 229 | with the Licensed Material: 230 | 231 | i. identification of the creator(s) of the Licensed 232 | Material and any others designated to receive 233 | attribution, in any reasonable manner requested by 234 | the Licensor (including by pseudonym if 235 | designated); 236 | 237 | ii. a copyright notice; 238 | 239 | iii. a notice that refers to this Public License; 240 | 241 | iv. a notice that refers to the disclaimer of 242 | warranties; 243 | 244 | v. a URI or hyperlink to the Licensed Material to the 245 | extent reasonably practicable; 246 | 247 | b. indicate if You modified the Licensed Material and 248 | retain an indication of any previous modifications; and 249 | 250 | c. indicate the Licensed Material is licensed under this 251 | Public License, and include the text of, or the URI or 252 | hyperlink to, this Public License. 253 | 254 | For the avoidance of doubt, You do not have permission under 255 | this Public License to Share Adapted Material. 256 | 257 | 2. You may satisfy the conditions in Section 3(a)(1) in any 258 | reasonable manner based on the medium, means, and context in 259 | which You Share the Licensed Material. For example, it may be 260 | reasonable to satisfy the conditions by providing a URI or 261 | hyperlink to a resource that includes the required 262 | information. 263 | 264 | 3. If requested by the Licensor, You must remove any of the 265 | information required by Section 3(a)(1)(A) to the extent 266 | reasonably practicable. 267 | 268 | 269 | Section 4 -- Sui Generis Database Rights. 270 | 271 | Where the Licensed Rights include Sui Generis Database Rights that 272 | apply to Your use of the Licensed Material: 273 | 274 | a. for the avoidance of doubt, Section 2(a)(1) grants You the right 275 | to extract, reuse, reproduce, and Share all or a substantial 276 | portion of the contents of the database for NonCommercial purposes 277 | only and provided You do not Share Adapted Material; 278 | 279 | b. if You include all or a substantial portion of the database 280 | contents in a database in which You have Sui Generis Database 281 | Rights, then the database in which You have Sui Generis Database 282 | Rights (but not its individual contents) is Adapted Material; and 283 | 284 | c. You must comply with the conditions in Section 3(a) if You Share 285 | all or a substantial portion of the contents of the database. 286 | 287 | For the avoidance of doubt, this Section 4 supplements and does not 288 | replace Your obligations under this Public License where the Licensed 289 | Rights include other Copyright and Similar Rights. 290 | 291 | 292 | Section 5 -- Disclaimer of Warranties and Limitation of Liability. 293 | 294 | a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE 295 | EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS 296 | AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF 297 | ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, 298 | IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, 299 | WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR 300 | PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, 301 | ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT 302 | KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT 303 | ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. 304 | 305 | b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE 306 | TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, 307 | NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, 308 | INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, 309 | COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR 310 | USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN 311 | ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR 312 | DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR 313 | IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. 314 | 315 | c. The disclaimer of warranties and limitation of liability provided 316 | above shall be interpreted in a manner that, to the extent 317 | possible, most closely approximates an absolute disclaimer and 318 | waiver of all liability. 319 | 320 | 321 | Section 6 -- Term and Termination. 322 | 323 | a. This Public License applies for the term of the Copyright and 324 | Similar Rights licensed here. However, if You fail to comply with 325 | this Public License, then Your rights under this Public License 326 | terminate automatically. 327 | 328 | b. Where Your right to use the Licensed Material has terminated under 329 | Section 6(a), it reinstates: 330 | 331 | 1. automatically as of the date the violation is cured, provided 332 | it is cured within 30 days of Your discovery of the 333 | violation; or 334 | 335 | 2. upon express reinstatement by the Licensor. 336 | 337 | For the avoidance of doubt, this Section 6(b) does not affect any 338 | right the Licensor may have to seek remedies for Your violations 339 | of this Public License. 340 | 341 | c. For the avoidance of doubt, the Licensor may also offer the 342 | Licensed Material under separate terms or conditions or stop 343 | distributing the Licensed Material at any time; however, doing so 344 | will not terminate this Public License. 345 | 346 | d. Sections 1, 5, 6, 7, and 8 survive termination of this Public 347 | License. 348 | 349 | 350 | Section 7 -- Other Terms and Conditions. 351 | 352 | a. The Licensor shall not be bound by any additional or different 353 | terms or conditions communicated by You unless expressly agreed. 354 | 355 | b. Any arrangements, understandings, or agreements regarding the 356 | Licensed Material not stated herein are separate from and 357 | independent of the terms and conditions of this Public License. 358 | 359 | 360 | Section 8 -- Interpretation. 361 | 362 | a. For the avoidance of doubt, this Public License does not, and 363 | shall not be interpreted to, reduce, limit, restrict, or impose 364 | conditions on any use of the Licensed Material that could lawfully 365 | be made without permission under this Public License. 366 | 367 | b. To the extent possible, if any provision of this Public License is 368 | deemed unenforceable, it shall be automatically reformed to the 369 | minimum extent necessary to make it enforceable. If the provision 370 | cannot be reformed, it shall be severed from this Public License 371 | without affecting the enforceability of the remaining terms and 372 | conditions. 373 | 374 | c. No term or condition of this Public License will be waived and no 375 | failure to comply consented to unless expressly agreed to by the 376 | Licensor. 377 | 378 | d. Nothing in this Public License constitutes or may be interpreted 379 | as a limitation upon, or waiver of, any privileges and immunities 380 | that apply to the Licensor or You, including from the legal 381 | processes of any jurisdiction or authority. 382 | 383 | ======================================================================= 384 | 385 | Creative Commons is not a party to its public 386 | licenses. Notwithstanding, Creative Commons may elect to apply one of 387 | its public licenses to material it publishes and in those instances 388 | will be considered the “Licensor.” The text of the Creative Commons 389 | public licenses is dedicated to the public domain under the CC0 Public 390 | Domain Dedication. Except for the limited purpose of indicating that 391 | material is shared under a Creative Commons public license or as 392 | otherwise permitted by the Creative Commons policies published at 393 | creativecommons.org/policies, Creative Commons does not authorize the 394 | use of the trademark "Creative Commons" or any other trademark or logo 395 | of Creative Commons without its prior written consent including, 396 | without limitation, in connection with any unauthorized modifications 397 | to any of its public licenses or any other arrangements, 398 | understandings, or agreements concerning use of licensed material. For 399 | the avoidance of doubt, this paragraph does not form part of the 400 | public licenses. 401 | 402 | Creative Commons may be contacted at creativecommons.org. 403 | -------------------------------------------------------------------------------- /diagrams/README.md: -------------------------------------------------------------------------------- 1 | # System Design Diagrams 2 | 3 | Import the `*.excalidraw` files in [Excalidraw](https://excalidraw.com) to view, edit or export the diagrams. 4 | -------------------------------------------------------------------------------- /diagrams/cap.excalidraw: -------------------------------------------------------------------------------- 1 | { 2 | "type": "excalidraw", 3 | "version": 2, 4 | "source": "https://excalidraw.com", 5 | "elements": [ 6 | { 7 | "id": "qGHzH7AfqQqAuUMYZG876", 8 | "type": "ellipse", 9 | "x": 573.76171875, 10 | "y": 305.16796875, 11 | "width": 321, 12 | "height": 320.72265625, 13 | "angle": 0, 14 | "strokeColor": "#5c940d", 15 | "backgroundColor": "#82c91e", 16 | "fillStyle": "hachure", 17 | "strokeWidth": 1, 18 | "strokeStyle": "solid", 19 | "roughness": 1, 20 | "opacity": 50, 21 | "groupIds": [], 22 | "strokeSharpness": "sharp", 23 | "seed": 524962924, 24 | "version": 108, 25 | "versionNonce": 377714156, 26 | "isDeleted": false, 27 | "boundElements": null, 28 | "updated": 1654156136134, 29 | "link": null, 30 | "locked": false 31 | }, 32 | { 33 | "type": "ellipse", 34 | "version": 462, 35 | "versionNonce": 503852756, 36 | "isDeleted": false, 37 | "id": "wzCpiPqdW5YbNZsgI1fly", 38 | "fillStyle": "hachure", 39 | "strokeWidth": 1, 40 | "strokeStyle": "solid", 41 | "roughness": 1, 42 | "opacity": 50, 43 | "angle": 0, 44 | "x": 796.794921875, 45 | "y": 304.220703125, 46 | "strokeColor": "#e67700", 47 | "backgroundColor": "#fab005", 48 | "width": 321, 49 | "height": 320.72265625, 50 | "seed": 926178156, 51 | "groupIds": [], 52 | "strokeSharpness": "sharp", 53 | "boundElements": [ 54 | { 55 | "type": "text", 56 | "id": "6yrd_Gg5ngWhp_wnaU3Si" 57 | } 58 | ], 59 | "updated": 1654156136134, 60 | "link": null, 61 | "locked": false 62 | }, 63 | { 64 | "type": "ellipse", 65 | "version": 772, 66 | "versionNonce": 1224071276, 67 | "isDeleted": false, 68 | "id": "dvBjK5EGQ1wVag8Ly8WPE", 69 | "fillStyle": "hachure", 70 | "strokeWidth": 1, 71 | "strokeStyle": "solid", 72 | "roughness": 1, 73 | "opacity": 50, 74 | "angle": 0, 75 | "x": 679.720703125, 76 | "y": 114.685546875, 77 | "strokeColor": "#0b7285", 78 | "backgroundColor": "#15aabf", 79 | "width": 321, 80 | "height": 320.72265625, 81 | "seed": 171101652, 82 | "groupIds": [], 83 | "strokeSharpness": "sharp", 84 | "boundElements": [ 85 | { 86 | "type": "text", 87 | "id": "b8cnRSWizBf-JDClJIqO-" 88 | } 89 | ], 90 | "updated": 1654156136134, 91 | "link": null, 92 | "locked": false 93 | }, 94 | { 95 | "id": "b8cnRSWizBf-JDClJIqO-", 96 | "type": "text", 97 | "x": 684.720703125, 98 | "y": 262.546875, 99 | "width": 311, 100 | "height": 25, 101 | "angle": 0, 102 | "strokeColor": "#000000", 103 | "backgroundColor": "#15aabf", 104 | "fillStyle": "hachure", 105 | "strokeWidth": 1, 106 | "strokeStyle": "solid", 107 | "roughness": 1, 108 | "opacity": 100, 109 | "groupIds": [], 110 | "strokeSharpness": "sharp", 111 | "seed": 1296902100, 112 | "version": 49, 113 | "versionNonce": 276679148, 114 | "isDeleted": false, 115 | "boundElements": null, 116 | "updated": 1654156140070, 117 | "link": null, 118 | "locked": false, 119 | "text": "Consistency", 120 | "fontSize": 20, 121 | "fontFamily": 1, 122 | "textAlign": "center", 123 | "verticalAlign": "middle", 124 | "baseline": 18, 125 | "containerId": "dvBjK5EGQ1wVag8Ly8WPE", 126 | "originalText": "Consistency" 127 | }, 128 | { 129 | "id": "H4ivK673oZ-dbZcpQwTV-", 130 | "type": "text", 131 | "x": 667.87890625, 132 | "y": 454.60546875, 133 | "width": 106, 134 | "height": 25, 135 | "angle": 0, 136 | "strokeColor": "#000000", 137 | "backgroundColor": "#15aabf", 138 | "fillStyle": "hachure", 139 | "strokeWidth": 1, 140 | "strokeStyle": "solid", 141 | "roughness": 1, 142 | "opacity": 100, 143 | "groupIds": [], 144 | "strokeSharpness": "sharp", 145 | "seed": 508483308, 146 | "version": 160, 147 | "versionNonce": 1271809492, 148 | "isDeleted": false, 149 | "boundElements": null, 150 | "updated": 1654156072655, 151 | "link": null, 152 | "locked": false, 153 | "text": "Availability", 154 | "fontSize": 20, 155 | "fontFamily": 1, 156 | "textAlign": "left", 157 | "verticalAlign": "top", 158 | "baseline": 18, 159 | "containerId": null, 160 | "originalText": "Availability" 161 | }, 162 | { 163 | "id": "6yrd_Gg5ngWhp_wnaU3Si", 164 | "type": "text", 165 | "x": 801.794921875, 166 | "y": 439.58203125, 167 | "width": 311, 168 | "height": 50, 169 | "angle": 0, 170 | "strokeColor": "#000000", 171 | "backgroundColor": "#15aabf", 172 | "fillStyle": "hachure", 173 | "strokeWidth": 1, 174 | "strokeStyle": "solid", 175 | "roughness": 1, 176 | "opacity": 100, 177 | "groupIds": [], 178 | "strokeSharpness": "sharp", 179 | "seed": 1720222316, 180 | "version": 32, 181 | "versionNonce": 247365996, 182 | "isDeleted": false, 183 | "boundElements": null, 184 | "updated": 1654156142579, 185 | "link": null, 186 | "locked": false, 187 | "text": "Partition\ntolerance", 188 | "fontSize": 20, 189 | "fontFamily": 1, 190 | "textAlign": "center", 191 | "verticalAlign": "middle", 192 | "baseline": 43, 193 | "containerId": "wzCpiPqdW5YbNZsgI1fly", 194 | "originalText": "Partition\ntolerance" 195 | }, 196 | { 197 | "id": "1Sf8rmNLB3UBdsFGXvxFg", 198 | "type": "text", 199 | "x": 756.51171875, 200 | "y": 345.94921875, 201 | "width": 27, 202 | "height": 25, 203 | "angle": 0, 204 | "strokeColor": "#000000", 205 | "backgroundColor": "#15aabf", 206 | "fillStyle": "hachure", 207 | "strokeWidth": 1, 208 | "strokeStyle": "solid", 209 | "roughness": 1, 210 | "opacity": 100, 211 | "groupIds": [], 212 | "strokeSharpness": "sharp", 213 | "seed": 1545780180, 214 | "version": 111, 215 | "versionNonce": 249442260, 216 | "isDeleted": false, 217 | "boundElements": null, 218 | "updated": 1654156084136, 219 | "link": null, 220 | "locked": false, 221 | "text": "CA", 222 | "fontSize": 20, 223 | "fontFamily": 1, 224 | "textAlign": "center", 225 | "verticalAlign": "top", 226 | "baseline": 18, 227 | "containerId": null, 228 | "originalText": "CA" 229 | }, 230 | { 231 | "type": "text", 232 | "version": 218, 233 | "versionNonce": 76230892, 234 | "isDeleted": false, 235 | "id": "7Tb9AIEaj7lV2dvnbeWW6", 236 | "fillStyle": "hachure", 237 | "strokeWidth": 1, 238 | "strokeStyle": "solid", 239 | "roughness": 1, 240 | "opacity": 100, 241 | "angle": 0, 242 | "x": 896.04296875, 243 | "y": 342.2109375, 244 | "strokeColor": "#000000", 245 | "backgroundColor": "#15aabf", 246 | "width": 27, 247 | "height": 25, 248 | "seed": 2034001772, 249 | "groupIds": [], 250 | "strokeSharpness": "sharp", 251 | "boundElements": [], 252 | "updated": 1654156089417, 253 | "link": null, 254 | "locked": false, 255 | "fontSize": 20, 256 | "fontFamily": 1, 257 | "text": "CP", 258 | "baseline": 18, 259 | "textAlign": "center", 260 | "verticalAlign": "top", 261 | "containerId": null, 262 | "originalText": "CP" 263 | }, 264 | { 265 | "type": "text", 266 | "version": 348, 267 | "versionNonce": 285545684, 268 | "isDeleted": false, 269 | "id": "THGGnpd5g94gkAgqhsD7x", 270 | "fillStyle": "hachure", 271 | "strokeWidth": 1, 272 | "strokeStyle": "solid", 273 | "roughness": 1, 274 | "opacity": 100, 275 | "angle": 0, 276 | "x": 829.9765625, 277 | "y": 472.07421875, 278 | "strokeColor": "#000000", 279 | "backgroundColor": "#15aabf", 280 | "width": 27, 281 | "height": 25, 282 | "seed": 124082924, 283 | "groupIds": [], 284 | "strokeSharpness": "sharp", 285 | "boundElements": [], 286 | "updated": 1654156094851, 287 | "link": null, 288 | "locked": false, 289 | "fontSize": 20, 290 | "fontFamily": 1, 291 | "text": "AP", 292 | "baseline": 18, 293 | "textAlign": "center", 294 | "verticalAlign": "top", 295 | "containerId": null, 296 | "originalText": "AP" 297 | } 298 | ], 299 | "appState": { 300 | "gridSize": null, 301 | "viewBackgroundColor": "#ffffff" 302 | }, 303 | "files": {} 304 | } -------------------------------------------------------------------------------- /diagrams/circuit-breaker.excalidraw: -------------------------------------------------------------------------------- 1 | { 2 | "type": "excalidraw", 3 | "version": 2, 4 | "source": "https://excalidraw.com", 5 | "elements": [ 6 | { 7 | "type": "ellipse", 8 | "version": 202, 9 | "versionNonce": 1880547144, 10 | "isDeleted": false, 11 | "id": "S6L-D5O93qwFpCuaejgwt", 12 | "fillStyle": "hachure", 13 | "strokeWidth": 1, 14 | "strokeStyle": "solid", 15 | "roughness": 1, 16 | "opacity": 60, 17 | "angle": 0, 18 | "x": 543.52734375, 19 | "y": 225.3671875, 20 | "strokeColor": "#5c940d", 21 | "backgroundColor": "#82c91e", 22 | "width": 168, 23 | "height": 167.7109375, 24 | "seed": 585117000, 25 | "groupIds": [], 26 | "strokeSharpness": "sharp", 27 | "boundElements": [ 28 | { 29 | "id": "yte0vUh4ArFCUdFMHFFm8", 30 | "type": "text" 31 | }, 32 | { 33 | "id": "yte0vUh4ArFCUdFMHFFm8", 34 | "type": "text" 35 | }, 36 | { 37 | "type": "text", 38 | "id": "yte0vUh4ArFCUdFMHFFm8" 39 | }, 40 | { 41 | "id": "lAqL2XqdshYkHvc1GdwiV", 42 | "type": "arrow" 43 | }, 44 | { 45 | "id": "9Bbb6WYxfryCXWtgEaF1m", 46 | "type": "arrow" 47 | } 48 | ], 49 | "updated": 1655446288642, 50 | "link": null, 51 | "locked": false 52 | }, 53 | { 54 | "type": "text", 55 | "version": 30, 56 | "versionNonce": 386451784, 57 | "isDeleted": false, 58 | "id": "yte0vUh4ArFCUdFMHFFm8", 59 | "fillStyle": "hachure", 60 | "strokeWidth": 1, 61 | "strokeStyle": "solid", 62 | "roughness": 1, 63 | "opacity": 100, 64 | "angle": 0, 65 | "x": 548.52734375, 66 | "y": 296.72265625, 67 | "strokeColor": "#000000", 68 | "backgroundColor": "#82c91e", 69 | "width": 158, 70 | "height": 25, 71 | "seed": 536560712, 72 | "groupIds": [], 73 | "strokeSharpness": "sharp", 74 | "boundElements": [], 75 | "updated": 1655446293284, 76 | "link": null, 77 | "locked": false, 78 | "fontSize": 20, 79 | "fontFamily": 1, 80 | "text": "Closed", 81 | "baseline": 18, 82 | "textAlign": "center", 83 | "verticalAlign": "middle", 84 | "containerId": "S6L-D5O93qwFpCuaejgwt", 85 | "originalText": "Closed" 86 | }, 87 | { 88 | "type": "ellipse", 89 | "version": 425, 90 | "versionNonce": 552055352, 91 | "isDeleted": false, 92 | "id": "4A0gimIXFCcCwMVtBLItJ", 93 | "fillStyle": "hachure", 94 | "strokeWidth": 1, 95 | "strokeStyle": "solid", 96 | "roughness": 1, 97 | "opacity": 60, 98 | "angle": 0, 99 | "x": 357.3125, 100 | "y": 567.0390625, 101 | "strokeColor": "#c92a2a", 102 | "backgroundColor": "#fa5252", 103 | "width": 168, 104 | "height": 167.7109375, 105 | "seed": 288569160, 106 | "groupIds": [], 107 | "strokeSharpness": "sharp", 108 | "boundElements": [ 109 | { 110 | "type": "text", 111 | "id": "O8vIplr2Py0s5iL1EXBlD" 112 | }, 113 | { 114 | "id": "lAqL2XqdshYkHvc1GdwiV", 115 | "type": "arrow" 116 | }, 117 | { 118 | "id": "HnFK2kyhcwu8mMSst3e-n", 119 | "type": "arrow" 120 | }, 121 | { 122 | "id": "M2yEV2HaujT9dOShwnul6", 123 | "type": "arrow" 124 | } 125 | ], 126 | "updated": 1655446288642, 127 | "link": null, 128 | "locked": false 129 | }, 130 | { 131 | "type": "text", 132 | "version": 257, 133 | "versionNonce": 188411464, 134 | "isDeleted": false, 135 | "id": "O8vIplr2Py0s5iL1EXBlD", 136 | "fillStyle": "hachure", 137 | "strokeWidth": 1, 138 | "strokeStyle": "solid", 139 | "roughness": 1, 140 | "opacity": 100, 141 | "angle": 0, 142 | "x": 362.3125, 143 | "y": 638.39453125, 144 | "strokeColor": "#000000", 145 | "backgroundColor": "#82c91e", 146 | "width": 158, 147 | "height": 25, 148 | "seed": 745477448, 149 | "groupIds": [], 150 | "strokeSharpness": "sharp", 151 | "boundElements": [], 152 | "updated": 1655446294848, 153 | "link": null, 154 | "locked": false, 155 | "fontSize": 20, 156 | "fontFamily": 1, 157 | "text": "Open", 158 | "baseline": 18, 159 | "textAlign": "center", 160 | "verticalAlign": "middle", 161 | "containerId": "4A0gimIXFCcCwMVtBLItJ", 162 | "originalText": "Open" 163 | }, 164 | { 165 | "type": "ellipse", 166 | "version": 442, 167 | "versionNonce": 2075706440, 168 | "isDeleted": false, 169 | "id": "L6ECa4IcMGpADo8hADqAh", 170 | "fillStyle": "hachure", 171 | "strokeWidth": 1, 172 | "strokeStyle": "solid", 173 | "roughness": 1, 174 | "opacity": 60, 175 | "angle": 0, 176 | "x": 743.3515625, 177 | "y": 565.6171875, 178 | "strokeColor": "#e67700", 179 | "backgroundColor": "#fab005", 180 | "width": 168, 181 | "height": 167.7109375, 182 | "seed": 1317099080, 183 | "groupIds": [], 184 | "strokeSharpness": "sharp", 185 | "boundElements": [ 186 | { 187 | "id": "sS2GdhHtCR_rPJPPvKhQb", 188 | "type": "text" 189 | }, 190 | { 191 | "type": "text", 192 | "id": "sS2GdhHtCR_rPJPPvKhQb" 193 | }, 194 | { 195 | "id": "HnFK2kyhcwu8mMSst3e-n", 196 | "type": "arrow" 197 | }, 198 | { 199 | "id": "M2yEV2HaujT9dOShwnul6", 200 | "type": "arrow" 201 | }, 202 | { 203 | "id": "9Bbb6WYxfryCXWtgEaF1m", 204 | "type": "arrow" 205 | } 206 | ], 207 | "updated": 1655446288642, 208 | "link": null, 209 | "locked": false 210 | }, 211 | { 212 | "type": "text", 213 | "version": 275, 214 | "versionNonce": 1525206072, 215 | "isDeleted": false, 216 | "id": "sS2GdhHtCR_rPJPPvKhQb", 217 | "fillStyle": "hachure", 218 | "strokeWidth": 1, 219 | "strokeStyle": "solid", 220 | "roughness": 1, 221 | "opacity": 100, 222 | "angle": 0, 223 | "x": 748.3515625, 224 | "y": 636.97265625, 225 | "strokeColor": "#000000", 226 | "backgroundColor": "#82c91e", 227 | "width": 158, 228 | "height": 25, 229 | "seed": 1237738568, 230 | "groupIds": [], 231 | "strokeSharpness": "sharp", 232 | "boundElements": [], 233 | "updated": 1655446296706, 234 | "link": null, 235 | "locked": false, 236 | "fontSize": 20, 237 | "fontFamily": 1, 238 | "text": "Half Open", 239 | "baseline": 18, 240 | "textAlign": "center", 241 | "verticalAlign": "middle", 242 | "containerId": "L6ECa4IcMGpADo8hADqAh", 243 | "originalText": "Half Open" 244 | }, 245 | { 246 | "type": "arrow", 247 | "version": 312, 248 | "versionNonce": 154926648, 249 | "isDeleted": false, 250 | "id": "lAqL2XqdshYkHvc1GdwiV", 251 | "fillStyle": "hachure", 252 | "strokeWidth": 1, 253 | "strokeStyle": "dashed", 254 | "roughness": 1, 255 | "opacity": 50, 256 | "angle": 0, 257 | "x": 552.7215951608937, 258 | "y": 394.6465654682504, 259 | "strokeColor": "#000000", 260 | "backgroundColor": "#fa5252", 261 | "width": 74.86256236941585, 262 | "height": 149.4508826615247, 263 | "seed": 957356872, 264 | "groupIds": [], 265 | "strokeSharpness": "round", 266 | "boundElements": [], 267 | "updated": 1655446286468, 268 | "link": null, 269 | "locked": false, 270 | "startBinding": { 271 | "elementId": "S6L-D5O93qwFpCuaejgwt", 272 | "focus": 0.3403680962703406, 273 | "gap": 29.629851688361512 274 | }, 275 | "endBinding": { 276 | "elementId": "4A0gimIXFCcCwMVtBLItJ", 277 | "focus": -0.1804785611176049, 278 | "gap": 29.006622832266686 279 | }, 280 | "lastCommittedPoint": null, 281 | "startArrowhead": null, 282 | "endArrowhead": "triangle", 283 | "points": [ 284 | [ 285 | 0, 286 | 0 287 | ], 288 | [ 289 | -74.86256236941585, 290 | 149.4508826615247 291 | ] 292 | ] 293 | }, 294 | { 295 | "type": "arrow", 296 | "version": 700, 297 | "versionNonce": 350614584, 298 | "isDeleted": false, 299 | "id": "9Bbb6WYxfryCXWtgEaF1m", 300 | "fillStyle": "hachure", 301 | "strokeWidth": 1, 302 | "strokeStyle": "dashed", 303 | "roughness": 1, 304 | "opacity": 50, 305 | "angle": 5.336621738367194, 306 | "x": 792.4941754435034, 307 | "y": 379.7082524017887, 308 | "strokeColor": "#000000", 309 | "backgroundColor": "#fa5252", 310 | "width": 66.82616589425493, 311 | "height": 168.5591194840734, 312 | "seed": 610118200, 313 | "groupIds": [], 314 | "strokeSharpness": "round", 315 | "boundElements": [], 316 | "updated": 1655446286469, 317 | "link": null, 318 | "locked": false, 319 | "startBinding": { 320 | "elementId": "S6L-D5O93qwFpCuaejgwt", 321 | "focus": -0.3268250821958479, 322 | "gap": 30.018023970616483 323 | }, 324 | "endBinding": { 325 | "elementId": "L6ECa4IcMGpADo8hADqAh", 326 | "focus": 0.5055630177495893, 327 | "gap": 26.967573473846343 328 | }, 329 | "lastCommittedPoint": null, 330 | "startArrowhead": "triangle", 331 | "endArrowhead": null, 332 | "points": [ 333 | [ 334 | 0, 335 | 0 336 | ], 337 | [ 338 | -66.82616589425493, 339 | 168.5591194840734 340 | ] 341 | ] 342 | }, 343 | { 344 | "type": "arrow", 345 | "version": 287, 346 | "versionNonce": 2022646328, 347 | "isDeleted": false, 348 | "id": "HnFK2kyhcwu8mMSst3e-n", 349 | "fillStyle": "hachure", 350 | "strokeWidth": 1, 351 | "strokeStyle": "dashed", 352 | "roughness": 1, 353 | "opacity": 50, 354 | "angle": 0, 355 | "x": 542.8203191292118, 356 | "y": 632.2148837363824, 357 | "strokeColor": "#000000", 358 | "backgroundColor": "#fa5252", 359 | "width": 174.9140541777025, 360 | "height": 0.21481916516938782, 361 | "seed": 47844152, 362 | "groupIds": [], 363 | "strokeSharpness": "round", 364 | "boundElements": [], 365 | "updated": 1655446286469, 366 | "link": null, 367 | "locked": false, 368 | "startBinding": { 369 | "elementId": "4A0gimIXFCcCwMVtBLItJ", 370 | "focus": -0.22424719269542617, 371 | "gap": 19.21698416207316 372 | }, 373 | "endBinding": { 374 | "elementId": "L6ECa4IcMGpADo8hADqAh", 375 | "focus": 0.20163640383938145, 376 | "gap": 26.937589412713294 377 | }, 378 | "lastCommittedPoint": null, 379 | "startArrowhead": "triangle", 380 | "endArrowhead": null, 381 | "points": [ 382 | [ 383 | 0, 384 | 0 385 | ], 386 | [ 387 | 174.9140541777025, 388 | 0.21481916516938782 389 | ] 390 | ] 391 | }, 392 | { 393 | "type": "arrow", 394 | "version": 406, 395 | "versionNonce": 2145262392, 396 | "isDeleted": false, 397 | "id": "M2yEV2HaujT9dOShwnul6", 398 | "fillStyle": "hachure", 399 | "strokeWidth": 1, 400 | "strokeStyle": "dashed", 401 | "roughness": 1, 402 | "opacity": 50, 403 | "angle": 0, 404 | "x": 545.5312382884747, 405 | "y": 676.7226972295916, 406 | "strokeColor": "#000000", 407 | "backgroundColor": "#fa5252", 408 | "width": 174.91408000931483, 409 | "height": 0.2148183251899809, 410 | "seed": 1821972792, 411 | "groupIds": [], 412 | "strokeSharpness": "round", 413 | "boundElements": [], 414 | "updated": 1655446286469, 415 | "link": null, 416 | "locked": false, 417 | "startBinding": { 418 | "elementId": "4A0gimIXFCcCwMVtBLItJ", 419 | "focus": 0.306480852608653, 420 | "gap": 23.37988169216878 421 | }, 422 | "endBinding": { 423 | "elementId": "L6ECa4IcMGpADo8hADqAh", 424 | "focus": -0.3290916414646977, 425 | "gap": 26.386786870846066 426 | }, 427 | "lastCommittedPoint": null, 428 | "startArrowhead": null, 429 | "endArrowhead": "triangle", 430 | "points": [ 431 | [ 432 | 0, 433 | 0 434 | ], 435 | [ 436 | 174.91408000931483, 437 | 0.2148183251899809 438 | ] 439 | ] 440 | }, 441 | { 442 | "type": "text", 443 | "version": 115, 444 | "versionNonce": 1956443192, 445 | "isDeleted": false, 446 | "id": "7nPxn_CnXNVeP9P9KKrIc", 447 | "fillStyle": "hachure", 448 | "strokeWidth": 1, 449 | "strokeStyle": "solid", 450 | "roughness": 1, 451 | "opacity": 50, 452 | "angle": 0, 453 | "x": 602.7578125, 454 | "y": 597.625, 455 | "strokeColor": "#000000", 456 | "backgroundColor": "#fa5252", 457 | "width": 53, 458 | "height": 20, 459 | "seed": 1600868920, 460 | "groupIds": [], 461 | "strokeSharpness": "sharp", 462 | "boundElements": [], 463 | "updated": 1655446194315, 464 | "link": null, 465 | "locked": false, 466 | "fontSize": 16, 467 | "fontFamily": 1, 468 | "text": "Failure", 469 | "baseline": 14, 470 | "textAlign": "left", 471 | "verticalAlign": "top", 472 | "containerId": null, 473 | "originalText": "Failure" 474 | }, 475 | { 476 | "type": "text", 477 | "version": 246, 478 | "versionNonce": 1728416584, 479 | "isDeleted": false, 480 | "id": "PYFwbmoYekj2nov_M9J2w", 481 | "fillStyle": "hachure", 482 | "strokeWidth": 1, 483 | "strokeStyle": "solid", 484 | "roughness": 1, 485 | "opacity": 50, 486 | "angle": 0, 487 | "x": 611.62109375, 488 | "y": 691.88671875, 489 | "strokeColor": "#000000", 490 | "backgroundColor": "#fa5252", 491 | "width": 45, 492 | "height": 20, 493 | "seed": 336857144, 494 | "groupIds": [], 495 | "strokeSharpness": "sharp", 496 | "boundElements": [], 497 | "updated": 1655446194315, 498 | "link": null, 499 | "locked": false, 500 | "fontSize": 16, 501 | "fontFamily": 1, 502 | "text": "Delay", 503 | "baseline": 14, 504 | "textAlign": "left", 505 | "verticalAlign": "top", 506 | "containerId": null, 507 | "originalText": "Delay" 508 | }, 509 | { 510 | "type": "text", 511 | "version": 116, 512 | "versionNonce": 1445985608, 513 | "isDeleted": false, 514 | "id": "ASEUMgDT5YoJjXFHrCxmr", 515 | "fillStyle": "hachure", 516 | "strokeWidth": 1, 517 | "strokeStyle": "solid", 518 | "roughness": 1, 519 | "opacity": 50, 520 | "angle": 0, 521 | "x": 424.30859375, 522 | "y": 424.0859375, 523 | "strokeColor": "#000000", 524 | "backgroundColor": "#fa5252", 525 | "width": 75, 526 | "height": 40, 527 | "seed": 816341560, 528 | "groupIds": [], 529 | "strokeSharpness": "sharp", 530 | "boundElements": [], 531 | "updated": 1655446234786, 532 | "link": null, 533 | "locked": false, 534 | "fontSize": 16, 535 | "fontFamily": 1, 536 | "text": "Threshold\nExceeded", 537 | "baseline": 34, 538 | "textAlign": "center", 539 | "verticalAlign": "top", 540 | "containerId": null, 541 | "originalText": "Threshold\nExceeded" 542 | }, 543 | { 544 | "type": "text", 545 | "version": 343, 546 | "versionNonce": 1038494919, 547 | "isDeleted": false, 548 | "id": "vWYYcWgtIVlU-eIxkL6Zb", 549 | "fillStyle": "hachure", 550 | "strokeWidth": 1, 551 | "strokeStyle": "solid", 552 | "roughness": 1, 553 | "opacity": 50, 554 | "angle": 0, 555 | "x": 779.8408203125, 556 | "y": 435.6455078125, 557 | "strokeColor": "#000000", 558 | "backgroundColor": "#fa5252", 559 | "width": 62, 560 | "height": 20, 561 | "seed": 2088851784, 562 | "groupIds": [], 563 | "strokeSharpness": "sharp", 564 | "boundElements": [], 565 | "updated": 1655446376517, 566 | "link": null, 567 | "locked": false, 568 | "fontSize": 16, 569 | "fontFamily": 1, 570 | "text": "Success", 571 | "baseline": 14, 572 | "textAlign": "center", 573 | "verticalAlign": "top", 574 | "containerId": null, 575 | "originalText": "Success" 576 | } 577 | ], 578 | "appState": { 579 | "gridSize": null, 580 | "viewBackgroundColor": "#ffffff" 581 | }, 582 | "files": {} 583 | } -------------------------------------------------------------------------------- /diagrams/cqrs.excalidraw: -------------------------------------------------------------------------------- 1 | { 2 | "type": "excalidraw", 3 | "version": 2, 4 | "source": "https://excalidraw.com", 5 | "elements": [ 6 | { 7 | "type": "line", 8 | "version": 7710, 9 | "versionNonce": 1647443951, 10 | "isDeleted": false, 11 | "id": "DHYZoTVgvZH57bL4psS3s", 12 | "fillStyle": "hachure", 13 | "strokeWidth": 1, 14 | "strokeStyle": "solid", 15 | "roughness": 1, 16 | "opacity": 50, 17 | "angle": 0, 18 | "x": 930.584458471052, 19 | "y": 98.57467881756199, 20 | "strokeColor": "#5c940d", 21 | "backgroundColor": "#82c91e", 22 | "width": 134.83506802840907, 23 | "height": 88.0553123507831, 24 | "seed": 19399873, 25 | "groupIds": [ 26 | "A9-zm1qAdB64i6cwsVqha", 27 | "rEEFor_JxWAc0SOdmPjBg", 28 | "Iy095bgLkBAZvmjvqZwMb" 29 | ], 30 | "strokeSharpness": "round", 31 | "boundElements": [], 32 | "updated": 1655204945538, 33 | "link": null, 34 | "locked": false, 35 | "startBinding": null, 36 | "endBinding": null, 37 | "lastCommittedPoint": null, 38 | "startArrowhead": null, 39 | "endArrowhead": null, 40 | "points": [ 41 | [ 42 | 0.008072453884929692, 43 | -1.084606354260366 44 | ], 45 | [ 46 | 0.4526892644215088, 47 | 65.46712145405425 48 | ], 49 | [ 50 | 0.028879476863403458, 51 | 73.04374666672868 52 | ], 53 | [ 54 | 6.952376664872035, 55 | 76.31751273110595 56 | ], 57 | [ 58 | 31.06311016199794, 59 | 79.08817886758294 60 | ], 61 | [ 62 | 71.81707955830868, 63 | 79.95092291327049 64 | ], 65 | [ 66 | 110.75480233051184, 67 | 78.57342566659261 68 | ], 69 | [ 70 | 131.44270113156946, 71 | 75.27916591505695 72 | ], 73 | [ 74 | 134.3604493156423, 75 | 72.50207038652968 76 | ], 77 | [ 78 | 134.77023648575135, 79 | 66.40218467924555 80 | ], 81 | [ 82 | 134.44860120688676, 83 | 4.498712144990997 84 | ], 85 | [ 86 | 133.72353204737166, 87 | -1.3500254353463788 88 | ], 89 | [ 90 | 125.06576042418352, 91 | -4.61892334324318 92 | ], 93 | [ 94 | 106.83434102994899, 95 | -6.512096039770853 96 | ], 97 | [ 98 | 65.28739952318993, 99 | -8.104389437512607 100 | ], 101 | [ 102 | 31.977289495527533, 103 | -7.154901299086927 104 | ], 105 | [ 106 | 5.7791141797063315, 107 | -3.9343533855704966 108 | ], 109 | [ 110 | -0.06483154265769368, 111 | -1.1245948765989071 112 | ], 113 | [ 114 | 0.008072453884929692, 115 | -1.084606354260366 116 | ] 117 | ] 118 | }, 119 | { 120 | "type": "ellipse", 121 | "version": 8268, 122 | "versionNonce": 299989633, 123 | "isDeleted": false, 124 | "id": "AKE-CzYBrMYuU_ahVIFb3", 125 | "fillStyle": "hachure", 126 | "strokeWidth": 1, 127 | "strokeStyle": "solid", 128 | "roughness": 1, 129 | "opacity": 50, 130 | "angle": 0, 131 | "x": 931.9447062651474, 132 | "y": 88.89399569642745, 133 | "strokeColor": "#5c940d", 134 | "backgroundColor": "#82c91e", 135 | "width": 132.42217288994826, 136 | "height": 24.09437385106039, 137 | "seed": 1512817825, 138 | "groupIds": [ 139 | "A9-zm1qAdB64i6cwsVqha", 140 | "rEEFor_JxWAc0SOdmPjBg", 141 | "Iy095bgLkBAZvmjvqZwMb" 142 | ], 143 | "strokeSharpness": "sharp", 144 | "boundElements": [ 145 | { 146 | "type": "arrow", 147 | "id": "bxuMGTzXLn7H-uBCptINx" 148 | } 149 | ], 150 | "updated": 1655204945539, 151 | "link": null, 152 | "locked": false 153 | }, 154 | { 155 | "id": "7SgaNaq77gpN1d-yV-Qvp", 156 | "type": "text", 157 | "x": 954.0885415770256, 158 | "y": 133.45012082370476, 159 | "width": 91, 160 | "height": 25, 161 | "angle": 0, 162 | "strokeColor": "#000000", 163 | "backgroundColor": "#228be6", 164 | "fillStyle": "hachure", 165 | "strokeWidth": 1, 166 | "strokeStyle": "solid", 167 | "roughness": 1, 168 | "opacity": 100, 169 | "groupIds": [], 170 | "strokeSharpness": "sharp", 171 | "seed": 7112833, 172 | "version": 135, 173 | "versionNonce": 129008225, 174 | "isDeleted": false, 175 | "boundElements": null, 176 | "updated": 1655204945539, 177 | "link": null, 178 | "locked": false, 179 | "text": "Write DB", 180 | "fontSize": 20, 181 | "fontFamily": 1, 182 | "textAlign": "left", 183 | "verticalAlign": "top", 184 | "baseline": 18, 185 | "containerId": null, 186 | "originalText": "Write DB" 187 | }, 188 | { 189 | "type": "line", 190 | "version": 7766, 191 | "versionNonce": 1800933423, 192 | "isDeleted": false, 193 | "id": "CZkiuUbOVaG6_uud7KYXg", 194 | "fillStyle": "hachure", 195 | "strokeWidth": 1, 196 | "strokeStyle": "solid", 197 | "roughness": 1, 198 | "opacity": 50, 199 | "angle": 0, 200 | "x": 929.5144479248753, 201 | "y": 368.23298693879485, 202 | "strokeColor": "#e67700", 203 | "backgroundColor": "#fab005", 204 | "width": 134.83506802840907, 205 | "height": 88.0553123507831, 206 | "seed": 1193126785, 207 | "groupIds": [ 208 | "7n0N6yaI6HXRDT8I25KCO", 209 | "pO5y8ZPhjm4MQBcqfquMn", 210 | "pamJJFFPK1GOyogXd15Eq" 211 | ], 212 | "strokeSharpness": "round", 213 | "boundElements": [], 214 | "updated": 1655204945539, 215 | "link": null, 216 | "locked": false, 217 | "startBinding": null, 218 | "endBinding": null, 219 | "lastCommittedPoint": null, 220 | "startArrowhead": null, 221 | "endArrowhead": null, 222 | "points": [ 223 | [ 224 | 0.008072453884929692, 225 | -1.084606354260366 226 | ], 227 | [ 228 | 0.4526892644215088, 229 | 65.46712145405425 230 | ], 231 | [ 232 | 0.028879476863403458, 233 | 73.04374666672868 234 | ], 235 | [ 236 | 6.952376664872035, 237 | 76.31751273110595 238 | ], 239 | [ 240 | 31.06311016199794, 241 | 79.08817886758294 242 | ], 243 | [ 244 | 71.81707955830868, 245 | 79.95092291327049 246 | ], 247 | [ 248 | 110.75480233051184, 249 | 78.57342566659261 250 | ], 251 | [ 252 | 131.44270113156946, 253 | 75.27916591505695 254 | ], 255 | [ 256 | 134.3604493156423, 257 | 72.50207038652968 258 | ], 259 | [ 260 | 134.77023648575135, 261 | 66.40218467924555 262 | ], 263 | [ 264 | 134.44860120688676, 265 | 4.498712144990997 266 | ], 267 | [ 268 | 133.72353204737166, 269 | -1.3500254353463788 270 | ], 271 | [ 272 | 125.06576042418352, 273 | -4.61892334324318 274 | ], 275 | [ 276 | 106.83434102994899, 277 | -6.512096039770853 278 | ], 279 | [ 280 | 65.28739952318993, 281 | -8.104389437512607 282 | ], 283 | [ 284 | 31.977289495527533, 285 | -7.154901299086927 286 | ], 287 | [ 288 | 5.7791141797063315, 289 | -3.9343533855704966 290 | ], 291 | [ 292 | -0.06483154265769368, 293 | -1.1245948765989071 294 | ], 295 | [ 296 | 0.008072453884929692, 297 | -1.084606354260366 298 | ] 299 | ] 300 | }, 301 | { 302 | "type": "ellipse", 303 | "version": 8325, 304 | "versionNonce": 571706945, 305 | "isDeleted": false, 306 | "id": "WN2qM-1rmhjYOSuFB1zUB", 307 | "fillStyle": "hachure", 308 | "strokeWidth": 1, 309 | "strokeStyle": "solid", 310 | "roughness": 1, 311 | "opacity": 50, 312 | "angle": 0, 313 | "x": 930.8746957189707, 314 | "y": 358.5523038176603, 315 | "strokeColor": "#e67700", 316 | "backgroundColor": "#fab005", 317 | "width": 132.42217288994826, 318 | "height": 24.09437385106039, 319 | "seed": 59083023, 320 | "groupIds": [ 321 | "7n0N6yaI6HXRDT8I25KCO", 322 | "pO5y8ZPhjm4MQBcqfquMn", 323 | "pamJJFFPK1GOyogXd15Eq" 324 | ], 325 | "strokeSharpness": "sharp", 326 | "boundElements": [ 327 | { 328 | "type": "arrow", 329 | "id": "bxuMGTzXLn7H-uBCptINx" 330 | } 331 | ], 332 | "updated": 1655204945539, 333 | "link": null, 334 | "locked": false 335 | }, 336 | { 337 | "id": "oD97pPSW82dPZBSl9Sag7", 338 | "type": "text", 339 | "x": 953.3193174055805, 340 | "y": 403.1084289449376, 341 | "width": 90, 342 | "height": 25, 343 | "angle": 0, 344 | "strokeColor": "#000000", 345 | "backgroundColor": "#228be6", 346 | "fillStyle": "hachure", 347 | "strokeWidth": 1, 348 | "strokeStyle": "solid", 349 | "roughness": 1, 350 | "opacity": 100, 351 | "groupIds": [], 352 | "strokeSharpness": "sharp", 353 | "seed": 1141856303, 354 | "version": 194, 355 | "versionNonce": 1701065295, 356 | "isDeleted": false, 357 | "boundElements": null, 358 | "updated": 1655204945539, 359 | "link": null, 360 | "locked": false, 361 | "text": "Read DB", 362 | "fontSize": 20, 363 | "fontFamily": 1, 364 | "textAlign": "left", 365 | "verticalAlign": "top", 366 | "baseline": 18, 367 | "containerId": null, 368 | "originalText": "Read DB" 369 | }, 370 | { 371 | "id": "VslUpTetne8xe1JG0zN5M", 372 | "type": "rectangle", 373 | "x": 595.9439414065906, 374 | "y": 103.12192730861938, 375 | "width": 132, 376 | "height": 66.80416073550327, 377 | "angle": 0, 378 | "strokeColor": "#5c940d", 379 | "backgroundColor": "#82c91e", 380 | "fillStyle": "hachure", 381 | "strokeWidth": 1, 382 | "strokeStyle": "solid", 383 | "roughness": 1, 384 | "opacity": 50, 385 | "groupIds": [], 386 | "strokeSharpness": "round", 387 | "seed": 1844601857, 388 | "version": 373, 389 | "versionNonce": 744685743, 390 | "isDeleted": false, 391 | "boundElements": [ 392 | { 393 | "id": "ss_f8jzjlDjF6cXZj1shc", 394 | "type": "text" 395 | }, 396 | { 397 | "type": "text", 398 | "id": "ss_f8jzjlDjF6cXZj1shc" 399 | }, 400 | { 401 | "id": "PN-UXjSZxC-IeWebBhxZh", 402 | "type": "arrow" 403 | } 404 | ], 405 | "updated": 1655204945539, 406 | "link": null, 407 | "locked": false 408 | }, 409 | { 410 | "id": "ss_f8jzjlDjF6cXZj1shc", 411 | "type": "text", 412 | "x": 600.9439414065906, 413 | "y": 124.02400767637101, 414 | "width": 122, 415 | "height": 25, 416 | "angle": 0, 417 | "strokeColor": "#000000", 418 | "backgroundColor": "#228be6", 419 | "fillStyle": "hachure", 420 | "strokeWidth": 1, 421 | "strokeStyle": "solid", 422 | "roughness": 1, 423 | "opacity": 100, 424 | "groupIds": [], 425 | "strokeSharpness": "round", 426 | "seed": 1424505825, 427 | "version": 187, 428 | "versionNonce": 2144200129, 429 | "isDeleted": false, 430 | "boundElements": null, 431 | "updated": 1655204945539, 432 | "link": null, 433 | "locked": false, 434 | "text": "Command", 435 | "fontSize": 20, 436 | "fontFamily": 1, 437 | "textAlign": "center", 438 | "verticalAlign": "middle", 439 | "baseline": 18, 440 | "containerId": "VslUpTetne8xe1JG0zN5M", 441 | "originalText": "Command" 442 | }, 443 | { 444 | "id": "1bgU9-JMsVrxeNRO0isda", 445 | "type": "rectangle", 446 | "x": 595.1648553867934, 447 | "y": 374.94405343095156, 448 | "width": 132, 449 | "height": 66.80416073550327, 450 | "angle": 0, 451 | "strokeColor": "#e67700", 452 | "backgroundColor": "#fab005", 453 | "fillStyle": "hachure", 454 | "strokeWidth": 1, 455 | "strokeStyle": "solid", 456 | "roughness": 1, 457 | "opacity": 50, 458 | "groupIds": [], 459 | "strokeSharpness": "round", 460 | "seed": 26075311, 461 | "version": 466, 462 | "versionNonce": 415044303, 463 | "isDeleted": false, 464 | "boundElements": [ 465 | { 466 | "type": "text", 467 | "id": "OFDi_lb9PZlqfPYXgx14v" 468 | }, 469 | { 470 | "id": "8MtR_K5fryve5ChbdgXbY", 471 | "type": "arrow" 472 | } 473 | ], 474 | "updated": 1655204945539, 475 | "link": null, 476 | "locked": false 477 | }, 478 | { 479 | "id": "OFDi_lb9PZlqfPYXgx14v", 480 | "type": "text", 481 | "x": 600.1648553867934, 482 | "y": 395.8461337987032, 483 | "width": 122, 484 | "height": 25, 485 | "angle": 0, 486 | "strokeColor": "#000000", 487 | "backgroundColor": "#228be6", 488 | "fillStyle": "hachure", 489 | "strokeWidth": 1, 490 | "strokeStyle": "solid", 491 | "roughness": 1, 492 | "opacity": 100, 493 | "groupIds": [], 494 | "strokeSharpness": "round", 495 | "seed": 1136010593, 496 | "version": 288, 497 | "versionNonce": 728597921, 498 | "isDeleted": false, 499 | "boundElements": null, 500 | "updated": 1655204945539, 501 | "link": null, 502 | "locked": false, 503 | "text": "Query", 504 | "fontSize": 20, 505 | "fontFamily": 1, 506 | "textAlign": "center", 507 | "verticalAlign": "middle", 508 | "baseline": 18, 509 | "containerId": "1bgU9-JMsVrxeNRO0isda", 510 | "originalText": "Query" 511 | }, 512 | { 513 | "id": "znws9PR3A7SRukU4GetmJ", 514 | "type": "diamond", 515 | "x": 264.93600941054046, 516 | "y": 209.95039958014854, 517 | "width": 130, 518 | "height": 129.78192431048467, 519 | "angle": 0, 520 | "strokeColor": "#1864ab", 521 | "backgroundColor": "#228be6", 522 | "fillStyle": "hachure", 523 | "strokeWidth": 1, 524 | "strokeStyle": "solid", 525 | "roughness": 1, 526 | "opacity": 50, 527 | "groupIds": [], 528 | "strokeSharpness": "round", 529 | "seed": 74359791, 530 | "version": 401, 531 | "versionNonce": 810541295, 532 | "isDeleted": false, 533 | "boundElements": [ 534 | { 535 | "type": "text", 536 | "id": "IZ9UHMEbib7u2SZqulPTG" 537 | }, 538 | { 539 | "id": "IAK9JPbMoXR8Mi0dIx1SY", 540 | "type": "arrow" 541 | }, 542 | { 543 | "id": "DhWPO4LXUGKa1z-T-qLg7", 544 | "type": "arrow" 545 | } 546 | ], 547 | "updated": 1655204945539, 548 | "link": null, 549 | "locked": false 550 | }, 551 | { 552 | "id": "IZ9UHMEbib7u2SZqulPTG", 553 | "type": "text", 554 | "x": 269.93600941054046, 555 | "y": 262.3413617353909, 556 | "width": 120, 557 | "height": 25, 558 | "angle": 0, 559 | "strokeColor": "#000000", 560 | "backgroundColor": "#fab005", 561 | "fillStyle": "hachure", 562 | "strokeWidth": 1, 563 | "strokeStyle": "solid", 564 | "roughness": 1, 565 | "opacity": 100, 566 | "groupIds": [], 567 | "strokeSharpness": "round", 568 | "seed": 373349711, 569 | "version": 296, 570 | "versionNonce": 634268033, 571 | "isDeleted": false, 572 | "boundElements": null, 573 | "updated": 1655204945539, 574 | "link": null, 575 | "locked": false, 576 | "text": "Client", 577 | "fontSize": 20, 578 | "fontFamily": 1, 579 | "textAlign": "center", 580 | "verticalAlign": "middle", 581 | "baseline": 18, 582 | "containerId": "znws9PR3A7SRukU4GetmJ", 583 | "originalText": "Client" 584 | }, 585 | { 586 | "id": "wSYKxy83KbUfTAZ6qui8h", 587 | "type": "arrow", 588 | "x": 999.0782937582139, 589 | "y": 193.27058703697435, 590 | "width": 0, 591 | "height": 148.9245085863207, 592 | "angle": 0, 593 | "strokeColor": "#000000", 594 | "backgroundColor": "#82c91e", 595 | "fillStyle": "hachure", 596 | "strokeWidth": 1, 597 | "strokeStyle": "dashed", 598 | "roughness": 1, 599 | "opacity": 50, 600 | "groupIds": [], 601 | "strokeSharpness": "round", 602 | "seed": 433762081, 603 | "version": 188, 604 | "versionNonce": 1647423791, 605 | "isDeleted": false, 606 | "boundElements": null, 607 | "updated": 1655204945539, 608 | "link": null, 609 | "locked": false, 610 | "points": [ 611 | [ 612 | 0, 613 | 0 614 | ], 615 | [ 616 | 0, 617 | 148.9245085863207 618 | ] 619 | ], 620 | "lastCommittedPoint": null, 621 | "startBinding": null, 622 | "endBinding": null, 623 | "startArrowhead": null, 624 | "endArrowhead": "triangle" 625 | }, 626 | { 627 | "id": "DhWPO4LXUGKa1z-T-qLg7", 628 | "type": "arrow", 629 | "x": 374.74534852666375, 630 | "y": 226.82055372288178, 631 | "width": 202.9059398072004, 632 | "height": 89.18512415475979, 633 | "angle": 0, 634 | "strokeColor": "#000000", 635 | "backgroundColor": "#82c91e", 636 | "fillStyle": "hachure", 637 | "strokeWidth": 1, 638 | "strokeStyle": "solid", 639 | "roughness": 1, 640 | "opacity": 50, 641 | "groupIds": [], 642 | "strokeSharpness": "round", 643 | "seed": 1034082191, 644 | "version": 232, 645 | "versionNonce": 1474329921, 646 | "isDeleted": false, 647 | "boundElements": null, 648 | "updated": 1655204945539, 649 | "link": null, 650 | "locked": false, 651 | "points": [ 652 | [ 653 | 0, 654 | 0 655 | ], 656 | [ 657 | 202.9059398072004, 658 | -89.18512415475979 659 | ] 660 | ], 661 | "lastCommittedPoint": null, 662 | "startBinding": { 663 | "elementId": "znws9PR3A7SRukU4GetmJ", 664 | "focus": -0.43650677787340375, 665 | "gap": 19.719368151002598 666 | }, 667 | "endBinding": null, 668 | "startArrowhead": null, 669 | "endArrowhead": "triangle" 670 | }, 671 | { 672 | "id": "IAK9JPbMoXR8Mi0dIx1SY", 673 | "type": "arrow", 674 | "x": 375.0883159157489, 675 | "y": 322.36567531233356, 676 | "width": 198.40701468452608, 677 | "height": 83.25858834125614, 678 | "angle": 0, 679 | "strokeColor": "#000000", 680 | "backgroundColor": "#82c91e", 681 | "fillStyle": "hachure", 682 | "strokeWidth": 1, 683 | "strokeStyle": "solid", 684 | "roughness": 1, 685 | "opacity": 50, 686 | "groupIds": [], 687 | "strokeSharpness": "round", 688 | "seed": 1185386497, 689 | "version": 389, 690 | "versionNonce": 1919005519, 691 | "isDeleted": false, 692 | "boundElements": null, 693 | "updated": 1655204945539, 694 | "link": null, 695 | "locked": false, 696 | "points": [ 697 | [ 698 | 0, 699 | 0 700 | ], 701 | [ 702 | 198.40701468452608, 703 | 83.25858834125614 704 | ] 705 | ], 706 | "lastCommittedPoint": null, 707 | "startBinding": { 708 | "elementId": "znws9PR3A7SRukU4GetmJ", 709 | "focus": 0.4403819987558417, 710 | "gap": 19.610309881349323 711 | }, 712 | "endBinding": null, 713 | "startArrowhead": "triangle", 714 | "endArrowhead": "triangle" 715 | }, 716 | { 717 | "id": "PN-UXjSZxC-IeWebBhxZh", 718 | "type": "arrow", 719 | "x": 742.1942954518936, 720 | "y": 135.16845494225106, 721 | "width": 179.47056672540873, 722 | "height": 0, 723 | "angle": 0, 724 | "strokeColor": "#000000", 725 | "backgroundColor": "#82c91e", 726 | "fillStyle": "hachure", 727 | "strokeWidth": 1, 728 | "strokeStyle": "solid", 729 | "roughness": 1, 730 | "opacity": 50, 731 | "groupIds": [], 732 | "strokeSharpness": "round", 733 | "seed": 523117999, 734 | "version": 58, 735 | "versionNonce": 608251169, 736 | "isDeleted": false, 737 | "boundElements": null, 738 | "updated": 1655204945539, 739 | "link": null, 740 | "locked": false, 741 | "points": [ 742 | [ 743 | 0, 744 | 0 745 | ], 746 | [ 747 | 179.47056672540873, 748 | 0 749 | ] 750 | ], 751 | "lastCommittedPoint": null, 752 | "startBinding": { 753 | "focus": -0.04058288343706535, 754 | "gap": 14.25035404530297, 755 | "elementId": "VslUpTetne8xe1JG0zN5M" 756 | }, 757 | "endBinding": null, 758 | "startArrowhead": null, 759 | "endArrowhead": "triangle" 760 | }, 761 | { 762 | "id": "8MtR_K5fryve5ChbdgXbY", 763 | "type": "arrow", 764 | "x": 738.3728004637679, 765 | "y": 410.4200559584549, 766 | "width": 179.47056672540873, 767 | "height": 0, 768 | "angle": 0, 769 | "strokeColor": "#000000", 770 | "backgroundColor": "#82c91e", 771 | "fillStyle": "hachure", 772 | "strokeWidth": 1, 773 | "strokeStyle": "solid", 774 | "roughness": 1, 775 | "opacity": 50, 776 | "groupIds": [], 777 | "strokeSharpness": "round", 778 | "seed": 1168360111, 779 | "version": 155, 780 | "versionNonce": 495743343, 781 | "isDeleted": false, 782 | "boundElements": null, 783 | "updated": 1655204945539, 784 | "link": null, 785 | "locked": false, 786 | "points": [ 787 | [ 788 | 0, 789 | 0 790 | ], 791 | [ 792 | 179.47056672540873, 793 | 0 794 | ] 795 | ], 796 | "lastCommittedPoint": null, 797 | "startBinding": { 798 | "elementId": "1bgU9-JMsVrxeNRO0isda", 799 | "focus": 0.06208961049485983, 800 | "gap": 11.20794507697451 801 | }, 802 | "endBinding": null, 803 | "startArrowhead": "triangle", 804 | "endArrowhead": "triangle" 805 | }, 806 | { 807 | "id": "S30UDR9eLgK2bZvoh09db", 808 | "type": "text", 809 | "x": 1005.5167711419862, 810 | "y": 246.17170814801932, 811 | "width": 42, 812 | "height": 25, 813 | "angle": 4.71238898038469, 814 | "strokeColor": "#000000", 815 | "backgroundColor": "#82c91e", 816 | "fillStyle": "hachure", 817 | "strokeWidth": 1, 818 | "strokeStyle": "solid", 819 | "roughness": 1, 820 | "opacity": 50, 821 | "groupIds": [], 822 | "strokeSharpness": "round", 823 | "seed": 955505377, 824 | "version": 59, 825 | "versionNonce": 754609039, 826 | "isDeleted": false, 827 | "boundElements": null, 828 | "updated": 1655204945539, 829 | "link": null, 830 | "locked": false, 831 | "text": "Sync", 832 | "fontSize": 20, 833 | "fontFamily": 1, 834 | "textAlign": "left", 835 | "verticalAlign": "top", 836 | "baseline": 18, 837 | "containerId": null, 838 | "originalText": "Sync" 839 | }, 840 | { 841 | "id": "q4RlOMDCNxeBF6HSvuCjb", 842 | "type": "text", 843 | "x": 433.52122443491476, 844 | "y": 152.83990675532058, 845 | "width": 51, 846 | "height": 25, 847 | "angle": 5.874248802600257, 848 | "strokeColor": "#000000", 849 | "backgroundColor": "#82c91e", 850 | "fillStyle": "hachure", 851 | "strokeWidth": 1, 852 | "strokeStyle": "dashed", 853 | "roughness": 1, 854 | "opacity": 50, 855 | "groupIds": [], 856 | "strokeSharpness": "round", 857 | "seed": 90989711, 858 | "version": 427, 859 | "versionNonce": 115284193, 860 | "isDeleted": false, 861 | "boundElements": null, 862 | "updated": 1655204945539, 863 | "link": null, 864 | "locked": false, 865 | "text": "Write", 866 | "fontSize": 20, 867 | "fontFamily": 1, 868 | "textAlign": "left", 869 | "verticalAlign": "top", 870 | "baseline": 18, 871 | "containerId": null, 872 | "originalText": "Write" 873 | }, 874 | { 875 | "id": "Zm_91yacW4QaONoN74KBg", 876 | "type": "text", 877 | "x": 444.440460181439, 878 | "y": 324.0095971768985, 879 | "width": 50, 880 | "height": 25, 881 | "angle": 0.3963696574555522, 882 | "strokeColor": "#000000", 883 | "backgroundColor": "#82c91e", 884 | "fillStyle": "hachure", 885 | "strokeWidth": 1, 886 | "strokeStyle": "dashed", 887 | "roughness": 1, 888 | "opacity": 50, 889 | "groupIds": [], 890 | "strokeSharpness": "round", 891 | "seed": 194752641, 892 | "version": 665, 893 | "versionNonce": 753148335, 894 | "isDeleted": false, 895 | "boundElements": null, 896 | "updated": 1655204945539, 897 | "link": null, 898 | "locked": false, 899 | "text": "Read", 900 | "fontSize": 20, 901 | "fontFamily": 1, 902 | "textAlign": "left", 903 | "verticalAlign": "top", 904 | "baseline": 18, 905 | "containerId": null, 906 | "originalText": "Read" 907 | } 908 | ], 909 | "appState": { 910 | "gridSize": null, 911 | "viewBackgroundColor": "#ffffff" 912 | }, 913 | "files": {} 914 | } -------------------------------------------------------------------------------- /diagrams/disaster-recovery.excalidraw: -------------------------------------------------------------------------------- 1 | { 2 | "type": "excalidraw", 3 | "version": 2, 4 | "source": "https://excalidraw.com", 5 | "elements": [ 6 | { 7 | "type": "text", 8 | "version": 499, 9 | "versionNonce": 705185856, 10 | "isDeleted": false, 11 | "id": "E1ZMFJrylhFHj1fMQx0BC", 12 | "fillStyle": "solid", 13 | "strokeWidth": 1, 14 | "strokeStyle": "solid", 15 | "roughness": 1, 16 | "opacity": 100, 17 | "angle": 0, 18 | "x": 551.0325756892519, 19 | "y": 625.9704037460834, 20 | "strokeColor": "#000000", 21 | "backgroundColor": "#868e96", 22 | "width": 42, 23 | "height": 25, 24 | "seed": 1651042368, 25 | "groupIds": [], 26 | "strokeSharpness": "round", 27 | "boundElements": [], 28 | "updated": 1654675696752, 29 | "link": null, 30 | "locked": false, 31 | "fontSize": 20, 32 | "fontFamily": 1, 33 | "text": "RPO", 34 | "baseline": 18, 35 | "textAlign": "left", 36 | "verticalAlign": "top", 37 | "containerId": null, 38 | "originalText": "RPO" 39 | }, 40 | { 41 | "type": "ellipse", 42 | "version": 396, 43 | "versionNonce": 263150528, 44 | "isDeleted": false, 45 | "id": "-CYzhwcaTgsicFEbhK5gK", 46 | "fillStyle": "hachure", 47 | "strokeWidth": 1, 48 | "strokeStyle": "solid", 49 | "roughness": 1, 50 | "opacity": 100, 51 | "angle": 0, 52 | "x": 857.6246021502914, 53 | "y": 527.1629468462405, 54 | "strokeColor": "#c92a2a", 55 | "backgroundColor": "#fa5252", 56 | "width": 78, 57 | "height": 78, 58 | "seed": 53001152, 59 | "groupIds": [ 60 | "OAIblc7HiW-udx--p_nrT", 61 | "zvN9UgD526YC3FY4bGcLc" 62 | ], 63 | "strokeSharpness": "round", 64 | "boundElements": [ 65 | { 66 | "id": "0ZbQ_A5zi-IxRE7SPBc79", 67 | "type": "arrow" 68 | } 69 | ], 70 | "updated": 1654675696752, 71 | "link": null, 72 | "locked": false 73 | }, 74 | { 75 | "type": "text", 76 | "version": 667, 77 | "versionNonce": 1234174016, 78 | "isDeleted": false, 79 | "id": "6QTBZGBaP1hD1TDg4LzT_", 80 | "fillStyle": "solid", 81 | "strokeWidth": 1, 82 | "strokeStyle": "solid", 83 | "roughness": 1, 84 | "opacity": 100, 85 | "angle": 0, 86 | "x": 224.3747205453122, 87 | "y": 536.30807518848, 88 | "strokeColor": "#000000", 89 | "backgroundColor": "#868e96", 90 | "width": 63, 91 | "height": 36, 92 | "seed": 1232915392, 93 | "groupIds": [], 94 | "strokeSharpness": "round", 95 | "boundElements": [], 96 | "updated": 1654675711858, 97 | "link": null, 98 | "locked": false, 99 | "fontSize": 28, 100 | "fontFamily": 1, 101 | "text": "Time", 102 | "baseline": 25, 103 | "textAlign": "left", 104 | "verticalAlign": "top", 105 | "containerId": null, 106 | "originalText": "Time" 107 | }, 108 | { 109 | "id": "41UAWt-BWdAsGZVwB7n6B", 110 | "type": "arrow", 111 | "x": 316.4502311541581, 112 | "y": 569.0757824783511, 113 | "width": 222.05766732431408, 114 | "height": 0, 115 | "angle": 0, 116 | "strokeColor": "#000000", 117 | "backgroundColor": "transparent", 118 | "fillStyle": "hachure", 119 | "strokeWidth": 1, 120 | "strokeStyle": "solid", 121 | "roughness": 1, 122 | "opacity": 50, 123 | "groupIds": [], 124 | "strokeSharpness": "round", 125 | "seed": 756893760, 126 | "version": 486, 127 | "versionNonce": 1266815936, 128 | "isDeleted": false, 129 | "boundElements": null, 130 | "updated": 1654675730143, 131 | "link": null, 132 | "locked": false, 133 | "points": [ 134 | [ 135 | 0, 136 | 0 137 | ], 138 | [ 139 | 222.05766732431408, 140 | 0 141 | ] 142 | ], 143 | "lastCommittedPoint": null, 144 | "startBinding": { 145 | "elementId": "Tixfl80_OzjYqBsrlzTjN", 146 | "focus": -2.3702991278061747, 147 | "gap": 13.702991278061745 148 | }, 149 | "endBinding": { 150 | "elementId": "v-sldAszrq1awiBFmAFqf", 151 | "focus": -0.014981544474197294, 152 | "gap": 1 153 | }, 154 | "startArrowhead": null, 155 | "endArrowhead": null 156 | }, 157 | { 158 | "type": "arrow", 159 | "version": 710, 160 | "versionNonce": 25795520, 161 | "isDeleted": false, 162 | "id": "0ZbQ_A5zi-IxRE7SPBc79", 163 | "fillStyle": "hachure", 164 | "strokeWidth": 1, 165 | "strokeStyle": "dotted", 166 | "roughness": 1, 167 | "opacity": 50, 168 | "angle": 0, 169 | "x": 605.9185832779349, 170 | "y": 569.4033258377532, 171 | "strokeColor": "#000000", 172 | "backgroundColor": "transparent", 173 | "width": 250.84257748851314, 174 | "height": 0.09327464158354815, 175 | "seed": 743017408, 176 | "groupIds": [], 177 | "strokeSharpness": "round", 178 | "boundElements": [], 179 | "updated": 1654675730143, 180 | "link": null, 181 | "locked": false, 182 | "startBinding": { 183 | "elementId": "v-sldAszrq1awiBFmAFqf", 184 | "focus": 0.02557693194089608, 185 | "gap": 2.3722209526595748 186 | }, 187 | "endBinding": { 188 | "elementId": "-CYzhwcaTgsicFEbhK5gK", 189 | "focus": -0.08031489996851666, 190 | "gap": 1 191 | }, 192 | "lastCommittedPoint": null, 193 | "startArrowhead": null, 194 | "endArrowhead": null, 195 | "points": [ 196 | [ 197 | 0, 198 | 0 199 | ], 200 | [ 201 | 250.84257748851314, 202 | -0.09327464158354815 203 | ] 204 | ] 205 | }, 206 | { 207 | "type": "arrow", 208 | "version": 1046, 209 | "versionNonce": 1952651328, 210 | "isDeleted": false, 211 | "id": "2-ygx8ACmoVPs1HEhGlaM", 212 | "fillStyle": "hachure", 213 | "strokeWidth": 1, 214 | "strokeStyle": "dotted", 215 | "roughness": 1, 216 | "opacity": 50, 217 | "angle": 0, 218 | "x": 935.3209033221731, 219 | "y": 568.1840207518942, 220 | "strokeColor": "#000000", 221 | "backgroundColor": "transparent", 222 | "width": 245.63972141064625, 223 | "height": 1.7571620056054371, 224 | "seed": 1470229440, 225 | "groupIds": [], 226 | "strokeSharpness": "round", 227 | "boundElements": [], 228 | "updated": 1654675730076, 229 | "link": null, 230 | "locked": false, 231 | "startBinding": null, 232 | "endBinding": null, 233 | "lastCommittedPoint": null, 234 | "startArrowhead": null, 235 | "endArrowhead": null, 236 | "points": [ 237 | [ 238 | 0, 239 | 0 240 | ], 241 | [ 242 | 245.63972141064625, 243 | 1.7571620056054371 244 | ] 245 | ] 246 | }, 247 | { 248 | "type": "arrow", 249 | "version": 889, 250 | "versionNonce": 1227459520, 251 | "isDeleted": false, 252 | "id": "Auoi5M_2C9C0V2T8UwtBY", 253 | "fillStyle": "hachure", 254 | "strokeWidth": 1, 255 | "strokeStyle": "solid", 256 | "roughness": 1, 257 | "opacity": 50, 258 | "angle": 0, 259 | "x": 1244.560617335407, 260 | "y": 570.7265954579399, 261 | "strokeColor": "#000000", 262 | "backgroundColor": "transparent", 263 | "width": 222.05766732431408, 264 | "height": 0, 265 | "seed": 537208896, 266 | "groupIds": [], 267 | "strokeSharpness": "round", 268 | "boundElements": [], 269 | "updated": 1654675730076, 270 | "link": null, 271 | "locked": false, 272 | "startBinding": null, 273 | "endBinding": null, 274 | "lastCommittedPoint": null, 275 | "startArrowhead": null, 276 | "endArrowhead": "triangle", 277 | "points": [ 278 | [ 279 | 0, 280 | 0 281 | ], 282 | [ 283 | 222.05766732431408, 284 | 0 285 | ] 286 | ] 287 | }, 288 | { 289 | "id": "v-sldAszrq1awiBFmAFqf", 290 | "type": "ellipse", 291 | "x": 539.3076873755462, 292 | "y": 536.4704351162301, 293 | "width": 64.24815808648418, 294 | "height": 64.24815808648418, 295 | "angle": 0, 296 | "strokeColor": "#e67700", 297 | "backgroundColor": "#fab005", 298 | "fillStyle": "hachure", 299 | "strokeWidth": 1, 300 | "strokeStyle": "solid", 301 | "roughness": 1, 302 | "opacity": 100, 303 | "groupIds": [], 304 | "strokeSharpness": "sharp", 305 | "seed": 1299280832, 306 | "version": 323, 307 | "versionNonce": 960421952, 308 | "isDeleted": false, 309 | "boundElements": [ 310 | { 311 | "id": "41UAWt-BWdAsGZVwB7n6B", 312 | "type": "arrow" 313 | }, 314 | { 315 | "id": "0ZbQ_A5zi-IxRE7SPBc79", 316 | "type": "arrow" 317 | } 318 | ], 319 | "updated": 1654675696753, 320 | "link": null, 321 | "locked": false 322 | }, 323 | { 324 | "type": "ellipse", 325 | "version": 481, 326 | "versionNonce": 653842496, 327 | "isDeleted": false, 328 | "id": "HjSsPRunkGF4cl-Qqiv6f", 329 | "fillStyle": "hachure", 330 | "strokeWidth": 1, 331 | "strokeStyle": "solid", 332 | "roughness": 1, 333 | "opacity": 100, 334 | "angle": 0, 335 | "x": 1180.3538133101001, 336 | "y": 538.9131527206841, 337 | "strokeColor": "#5c940d", 338 | "backgroundColor": "#82c91e", 339 | "width": 64.24815808648418, 340 | "height": 64.24815808648418, 341 | "seed": 1921352640, 342 | "groupIds": [], 343 | "strokeSharpness": "sharp", 344 | "boundElements": [ 345 | { 346 | "id": "41UAWt-BWdAsGZVwB7n6B", 347 | "type": "arrow" 348 | }, 349 | { 350 | "id": "0ZbQ_A5zi-IxRE7SPBc79", 351 | "type": "arrow" 352 | } 353 | ], 354 | "updated": 1654675696753, 355 | "link": null, 356 | "locked": false 357 | }, 358 | { 359 | "type": "text", 360 | "version": 472, 361 | "versionNonce": 63949760, 362 | "isDeleted": false, 363 | "id": "fdycl1MZaNZlxsewcsWlq", 364 | "fillStyle": "solid", 365 | "strokeWidth": 1, 366 | "strokeStyle": "solid", 367 | "roughness": 1, 368 | "opacity": 100, 369 | "angle": 0, 370 | "x": 1193.083000954538, 371 | "y": 626.474440606124, 372 | "strokeColor": "#000000", 373 | "backgroundColor": "#868e96", 374 | "width": 45, 375 | "height": 25, 376 | "seed": 134138816, 377 | "groupIds": [], 378 | "strokeSharpness": "round", 379 | "boundElements": [], 380 | "updated": 1654675696753, 381 | "link": null, 382 | "locked": false, 383 | "fontSize": 20, 384 | "fontFamily": 1, 385 | "text": "RTO", 386 | "baseline": 18, 387 | "textAlign": "left", 388 | "verticalAlign": "top", 389 | "containerId": null, 390 | "originalText": "RTO" 391 | }, 392 | { 393 | "type": "text", 394 | "version": 556, 395 | "versionNonce": 1465930688, 396 | "isDeleted": false, 397 | "id": "pWybjXvcopO__2lfWLIKx", 398 | "fillStyle": "solid", 399 | "strokeWidth": 1, 400 | "strokeStyle": "solid", 401 | "roughness": 1, 402 | "opacity": 100, 403 | "angle": 0, 404 | "x": 675.9113297554468, 405 | "y": 590.3363372620441, 406 | "strokeColor": "#000000", 407 | "backgroundColor": "#868e96", 408 | "width": 88, 409 | "height": 20, 410 | "seed": 946286656, 411 | "groupIds": [], 412 | "strokeSharpness": "round", 413 | "boundElements": [], 414 | "updated": 1654675696753, 415 | "link": null, 416 | "locked": false, 417 | "fontSize": 16, 418 | "fontFamily": 1, 419 | "text": "Data Loss", 420 | "baseline": 14, 421 | "textAlign": "left", 422 | "verticalAlign": "top", 423 | "containerId": null, 424 | "originalText": "Data Loss" 425 | }, 426 | { 427 | "type": "text", 428 | "version": 728, 429 | "versionNonce": 206555200, 430 | "isDeleted": false, 431 | "id": "LiuSwzzgMf3nFWZS2pPMI", 432 | "fillStyle": "solid", 433 | "strokeWidth": 1, 434 | "strokeStyle": "solid", 435 | "roughness": 1, 436 | "opacity": 100, 437 | "angle": 0, 438 | "x": 1013.7174790928495, 439 | "y": 590.3854359994218, 440 | "strokeColor": "#000000", 441 | "backgroundColor": "#868e96", 442 | "width": 71, 443 | "height": 20, 444 | "seed": 66309056, 445 | "groupIds": [], 446 | "strokeSharpness": "round", 447 | "boundElements": [], 448 | "updated": 1654675696753, 449 | "link": null, 450 | "locked": false, 451 | "fontSize": 16, 452 | "fontFamily": 1, 453 | "text": "Downtime", 454 | "baseline": 14, 455 | "textAlign": "left", 456 | "verticalAlign": "top", 457 | "containerId": null, 458 | "originalText": "Downtime" 459 | }, 460 | { 461 | "type": "text", 462 | "version": 875, 463 | "versionNonce": 2006965184, 464 | "isDeleted": false, 465 | "id": "ZHf_kA2-iYCnwffR3-1f0", 466 | "fillStyle": "solid", 467 | "strokeWidth": 1, 468 | "strokeStyle": "solid", 469 | "roughness": 1, 470 | "opacity": 100, 471 | "angle": 0, 472 | "x": 856.2647668776966, 473 | "y": 626.1857097531645, 474 | "strokeColor": "#000000", 475 | "backgroundColor": "#868e96", 476 | "width": 87, 477 | "height": 25, 478 | "seed": 82458688, 479 | "groupIds": [], 480 | "strokeSharpness": "round", 481 | "boundElements": [], 482 | "updated": 1654675696753, 483 | "link": null, 484 | "locked": false, 485 | "fontSize": 20, 486 | "fontFamily": 1, 487 | "text": "Disaster", 488 | "baseline": 18, 489 | "textAlign": "left", 490 | "verticalAlign": "top", 491 | "containerId": null, 492 | "originalText": "Disaster" 493 | }, 494 | { 495 | "type": "text", 496 | "version": 1300, 497 | "versionNonce": 663006144, 498 | "isDeleted": false, 499 | "id": "Tixfl80_OzjYqBsrlzTjN", 500 | "fillStyle": "solid", 501 | "strokeWidth": 1, 502 | "strokeStyle": "solid", 503 | "roughness": 1, 504 | "opacity": 100, 505 | "angle": 0, 506 | "x": 211.9133616935436, 507 | "y": 582.7787737564129, 508 | "strokeColor": "#000000", 509 | "backgroundColor": "#868e96", 510 | "width": 91, 511 | "height": 20, 512 | "seed": 1614393408, 513 | "groupIds": [], 514 | "strokeSharpness": "round", 515 | "boundElements": [ 516 | { 517 | "id": "41UAWt-BWdAsGZVwB7n6B", 518 | "type": "arrow" 519 | } 520 | ], 521 | "updated": 1654675712001, 522 | "link": null, 523 | "locked": false, 524 | "fontSize": 16, 525 | "fontFamily": 1, 526 | "text": "Days/Hours", 527 | "baseline": 14, 528 | "textAlign": "left", 529 | "verticalAlign": "top", 530 | "containerId": null, 531 | "originalText": "Days/Hours" 532 | } 533 | ], 534 | "appState": { 535 | "gridSize": null, 536 | "viewBackgroundColor": "#ffffff" 537 | }, 538 | "files": {} 539 | } -------------------------------------------------------------------------------- /diagrams/enterprise-service-bus.excalidraw: -------------------------------------------------------------------------------- 1 | { 2 | "type": "excalidraw", 3 | "version": 2, 4 | "source": "https://excalidraw.com", 5 | "elements": [ 6 | { 7 | "type": "ellipse", 8 | "version": 806, 9 | "versionNonce": 824340115, 10 | "isDeleted": false, 11 | "id": "2lPJ_neSGNI9OuKWXVy_M", 12 | "fillStyle": "hachure", 13 | "strokeWidth": 1, 14 | "strokeStyle": "solid", 15 | "roughness": 1, 16 | "opacity": 50, 17 | "angle": 0, 18 | "x": 711.8867187499999, 19 | "y": 424.2631063299215, 20 | "strokeColor": "#000000", 21 | "backgroundColor": "#868e96", 22 | "width": 32.87713521495354, 23 | "height": 82.63712364839668, 24 | "seed": 1062673661, 25 | "groupIds": [ 26 | "qqF6xeW1Vu_ohbhAtQsrV", 27 | "xI3bQ-SfXcX3Ip2YMSULc" 28 | ], 29 | "strokeSharpness": "round", 30 | "boundElements": [ 31 | { 32 | "id": "VXnVJ0mqLMaTQ-U57jonu", 33 | "type": "arrow" 34 | }, 35 | { 36 | "id": "yOkxqtyp3aQtMYlhlFCNM", 37 | "type": "arrow" 38 | }, 39 | { 40 | "id": "cIF9uPht5M8qwxRKfHjYz", 41 | "type": "arrow" 42 | } 43 | ], 44 | "updated": 1654005907312, 45 | "link": null, 46 | "locked": false 47 | }, 48 | { 49 | "type": "ellipse", 50 | "version": 853, 51 | "versionNonce": 997177373, 52 | "isDeleted": false, 53 | "id": "UfYAcTNm9evoptxfe6AiZ", 54 | "fillStyle": "hachure", 55 | "strokeWidth": 1, 56 | "strokeStyle": "solid", 57 | "roughness": 1, 58 | "opacity": 50, 59 | "angle": 0, 60 | "x": 988.5525522850467, 61 | "y": 424.2631063299215, 62 | "strokeColor": "#000000", 63 | "backgroundColor": "#868e96", 64 | "width": 32.87713521495354, 65 | "height": 82.63712364839668, 66 | "seed": 1525874003, 67 | "groupIds": [ 68 | "qqF6xeW1Vu_ohbhAtQsrV", 69 | "xI3bQ-SfXcX3Ip2YMSULc" 70 | ], 71 | "strokeSharpness": "round", 72 | "boundElements": [ 73 | { 74 | "id": "gQ91-adUOze2OIS3MaNVw", 75 | "type": "arrow" 76 | }, 77 | { 78 | "id": "hdOb22SlmOlR5DfjRFvUC", 79 | "type": "arrow" 80 | }, 81 | { 82 | "id": "dwz6-LSGwYgf0ghXTbnuQ", 83 | "type": "arrow" 84 | } 85 | ], 86 | "updated": 1654005907312, 87 | "link": null, 88 | "locked": false 89 | }, 90 | { 91 | "type": "line", 92 | "version": 800, 93 | "versionNonce": 1050485811, 94 | "isDeleted": false, 95 | "id": "jzsCPz2xpZJSeXMG1ORPc", 96 | "fillStyle": "hachure", 97 | "strokeWidth": 1, 98 | "strokeStyle": "solid", 99 | "roughness": 1, 100 | "opacity": 50, 101 | "angle": 0, 102 | "x": 727.8198293805618, 103 | "y": 424.7216649539588, 104 | "strokeColor": "#000000", 105 | "backgroundColor": "#868e96", 106 | "width": 276.1397860396363, 107 | "height": 0, 108 | "seed": 1069839709, 109 | "groupIds": [ 110 | "qqF6xeW1Vu_ohbhAtQsrV", 111 | "xI3bQ-SfXcX3Ip2YMSULc" 112 | ], 113 | "strokeSharpness": "round", 114 | "boundElements": [], 115 | "updated": 1654005907312, 116 | "link": null, 117 | "locked": false, 118 | "startBinding": null, 119 | "endBinding": null, 120 | "lastCommittedPoint": null, 121 | "startArrowhead": null, 122 | "endArrowhead": null, 123 | "points": [ 124 | [ 125 | 0, 126 | 0 127 | ], 128 | [ 129 | 276.1397860396363, 130 | 0 131 | ] 132 | ] 133 | }, 134 | { 135 | "type": "line", 136 | "version": 818, 137 | "versionNonce": 1616686205, 138 | "isDeleted": false, 139 | "id": "Y891MpetWKnoOpeQ-d00r", 140 | "fillStyle": "hachure", 141 | "strokeWidth": 1, 142 | "strokeStyle": "solid", 143 | "roughness": 1, 144 | "opacity": 50, 145 | "angle": 0, 146 | "x": 728.3827031271666, 147 | "y": 506.4814781304958, 148 | "strokeColor": "#000000", 149 | "backgroundColor": "#868e96", 150 | "width": 282.46510461156583, 151 | "height": 0, 152 | "seed": 1693309683, 153 | "groupIds": [ 154 | "qqF6xeW1Vu_ohbhAtQsrV", 155 | "xI3bQ-SfXcX3Ip2YMSULc" 156 | ], 157 | "strokeSharpness": "round", 158 | "boundElements": [], 159 | "updated": 1654005907312, 160 | "link": null, 161 | "locked": false, 162 | "startBinding": null, 163 | "endBinding": null, 164 | "lastCommittedPoint": null, 165 | "startArrowhead": null, 166 | "endArrowhead": null, 167 | "points": [ 168 | [ 169 | 0, 170 | 0 171 | ], 172 | [ 173 | 282.46510461156583, 174 | 0 175 | ] 176 | ] 177 | }, 178 | { 179 | "type": "text", 180 | "version": 1198, 181 | "versionNonce": 1483478237, 182 | "isDeleted": false, 183 | "id": "Zb6RPIPpcSsk7nuDKfL7H", 184 | "fillStyle": "hachure", 185 | "strokeWidth": 1, 186 | "strokeStyle": "solid", 187 | "roughness": 0, 188 | "opacity": 100, 189 | "angle": 0, 190 | "x": 779.1203012500297, 191 | "y": 458.3907209676282, 192 | "strokeColor": "#000000", 193 | "backgroundColor": "#868e96", 194 | "width": 179, 195 | "height": 20, 196 | "seed": 1392247955, 197 | "groupIds": [ 198 | "xI3bQ-SfXcX3Ip2YMSULc" 199 | ], 200 | "strokeSharpness": "round", 201 | "boundElements": [], 202 | "updated": 1654005907312, 203 | "link": null, 204 | "locked": false, 205 | "fontSize": 16, 206 | "fontFamily": 1, 207 | "text": "Enterprise Service Bus", 208 | "baseline": 14, 209 | "textAlign": "center", 210 | "verticalAlign": "top", 211 | "containerId": null, 212 | "originalText": "Enterprise Service Bus" 213 | }, 214 | { 215 | "id": "ypSbzFxm-1jTZY4Nd63k8", 216 | "type": "ellipse", 217 | "x": 462.0074187178384, 218 | "y": 300.7219660012962, 219 | "width": 86.07335001258026, 220 | "height": 86.07335001258026, 221 | "angle": 0, 222 | "strokeColor": "#2b8a3e", 223 | "backgroundColor": "#40c057", 224 | "fillStyle": "hachure", 225 | "strokeWidth": 1, 226 | "strokeStyle": "solid", 227 | "roughness": 1, 228 | "opacity": 60, 229 | "groupIds": [], 230 | "strokeSharpness": "sharp", 231 | "seed": 67587187, 232 | "version": 1216, 233 | "versionNonce": 1135735667, 234 | "isDeleted": false, 235 | "boundElements": [ 236 | { 237 | "type": "text", 238 | "id": "4_d9knYgTfywL6fWee2t-" 239 | }, 240 | { 241 | "id": "VXnVJ0mqLMaTQ-U57jonu", 242 | "type": "arrow" 243 | } 244 | ], 245 | "updated": 1654005907312, 246 | "link": null, 247 | "locked": false, 248 | "fontSize": 12.171736002012837, 249 | "baseline": 71.07335001258026 250 | }, 251 | { 252 | "id": "4_d9knYgTfywL6fWee2t-", 253 | "type": "text", 254 | "x": 467.0074187178384, 255 | "y": 335.75864100758633, 256 | "width": 76, 257 | "height": 16, 258 | "angle": 0, 259 | "strokeColor": "#000000", 260 | "backgroundColor": "#fab005", 261 | "fillStyle": "hachure", 262 | "strokeWidth": 1, 263 | "strokeStyle": "solid", 264 | "roughness": 1, 265 | "opacity": 100, 266 | "groupIds": [], 267 | "strokeSharpness": "sharp", 268 | "seed": 1695916413, 269 | "version": 1322, 270 | "versionNonce": 2133815613, 271 | "isDeleted": false, 272 | "boundElements": null, 273 | "updated": 1654005907312, 274 | "link": null, 275 | "locked": false, 276 | "text": "Service A", 277 | "fontSize": 12.171736002012837, 278 | "fontFamily": 1, 279 | "textAlign": "center", 280 | "verticalAlign": "middle", 281 | "baseline": 11, 282 | "containerId": "ypSbzFxm-1jTZY4Nd63k8", 283 | "originalText": "Service A" 284 | }, 285 | { 286 | "type": "ellipse", 287 | "version": 1248, 288 | "versionNonce": 1655246099, 289 | "isDeleted": false, 290 | "id": "wK6zW641R7n-Av0c1N7Za", 291 | "fillStyle": "hachure", 292 | "strokeWidth": 1, 293 | "strokeStyle": "solid", 294 | "roughness": 1, 295 | "opacity": 60, 296 | "angle": 0, 297 | "x": 460.74344309938465, 298 | "y": 423.82733162972335, 299 | "strokeColor": "#0b7285", 300 | "backgroundColor": "#15aabf", 301 | "width": 86.07335001258026, 302 | "height": 86.07335001258026, 303 | "seed": 177616637, 304 | "groupIds": [], 305 | "strokeSharpness": "sharp", 306 | "boundElements": [ 307 | { 308 | "id": "9vWY81y9RmblDJXGKoO8K", 309 | "type": "text" 310 | }, 311 | { 312 | "type": "text", 313 | "id": "9vWY81y9RmblDJXGKoO8K" 314 | }, 315 | { 316 | "id": "yOkxqtyp3aQtMYlhlFCNM", 317 | "type": "arrow" 318 | } 319 | ], 320 | "updated": 1654005907312, 321 | "link": null, 322 | "locked": false, 323 | "fontSize": 12.171736002012837, 324 | "baseline": 71.07335001258026 325 | }, 326 | { 327 | "type": "text", 328 | "version": 1353, 329 | "versionNonce": 1107837341, 330 | "isDeleted": false, 331 | "id": "9vWY81y9RmblDJXGKoO8K", 332 | "fillStyle": "hachure", 333 | "strokeWidth": 1, 334 | "strokeStyle": "solid", 335 | "roughness": 1, 336 | "opacity": 100, 337 | "angle": 0, 338 | "x": 465.74344309938465, 339 | "y": 458.86400663601347, 340 | "strokeColor": "#000000", 341 | "backgroundColor": "#fab005", 342 | "width": 76, 343 | "height": 16, 344 | "seed": 977961811, 345 | "groupIds": [], 346 | "strokeSharpness": "sharp", 347 | "boundElements": [], 348 | "updated": 1654005907313, 349 | "link": null, 350 | "locked": false, 351 | "fontSize": 12.171736002012837, 352 | "fontFamily": 1, 353 | "text": "Service E", 354 | "baseline": 11, 355 | "textAlign": "center", 356 | "verticalAlign": "middle", 357 | "containerId": "wK6zW641R7n-Av0c1N7Za", 358 | "originalText": "Service E" 359 | }, 360 | { 361 | "type": "ellipse", 362 | "version": 1364, 363 | "versionNonce": 1925968563, 364 | "isDeleted": false, 365 | "id": "PMxCNcS3_8yNCj5yWFLAk", 366 | "fillStyle": "hachure", 367 | "strokeWidth": 1, 368 | "strokeStyle": "solid", 369 | "roughness": 1, 370 | "opacity": 60, 371 | "angle": 0, 372 | "x": 459.80600497201885, 373 | "y": 548.997621119365, 374 | "strokeColor": "#c92a2a", 375 | "backgroundColor": "#fa5252", 376 | "width": 86.07335001258026, 377 | "height": 86.07335001258026, 378 | "seed": 1148049597, 379 | "groupIds": [], 380 | "strokeSharpness": "sharp", 381 | "boundElements": [ 382 | { 383 | "id": "FE51UW0oGXNFbKwaShOiA", 384 | "type": "text" 385 | }, 386 | { 387 | "id": "FE51UW0oGXNFbKwaShOiA", 388 | "type": "text" 389 | }, 390 | { 391 | "type": "text", 392 | "id": "FE51UW0oGXNFbKwaShOiA" 393 | }, 394 | { 395 | "id": "cIF9uPht5M8qwxRKfHjYz", 396 | "type": "arrow" 397 | } 398 | ], 399 | "updated": 1654005907313, 400 | "link": null, 401 | "locked": false, 402 | "fontSize": 12.171736002012837, 403 | "baseline": 71.07335001258026 404 | }, 405 | { 406 | "type": "text", 407 | "version": 1470, 408 | "versionNonce": 1713899005, 409 | "isDeleted": false, 410 | "id": "FE51UW0oGXNFbKwaShOiA", 411 | "fillStyle": "hachure", 412 | "strokeWidth": 1, 413 | "strokeStyle": "solid", 414 | "roughness": 1, 415 | "opacity": 100, 416 | "angle": 0, 417 | "x": 464.80600497201885, 418 | "y": 584.0342961256551, 419 | "strokeColor": "#000000", 420 | "backgroundColor": "#fab005", 421 | "width": 76, 422 | "height": 16, 423 | "seed": 1686560147, 424 | "groupIds": [], 425 | "strokeSharpness": "sharp", 426 | "boundElements": [], 427 | "updated": 1654005907313, 428 | "link": null, 429 | "locked": false, 430 | "fontSize": 12.171736002012837, 431 | "fontFamily": 1, 432 | "text": "Service B", 433 | "baseline": 11, 434 | "textAlign": "center", 435 | "verticalAlign": "middle", 436 | "containerId": "PMxCNcS3_8yNCj5yWFLAk", 437 | "originalText": "Service B" 438 | }, 439 | { 440 | "type": "ellipse", 441 | "version": 1580, 442 | "versionNonce": 244334173, 443 | "isDeleted": false, 444 | "id": "jejFBhxbde4YICEpzWT-2", 445 | "fillStyle": "hachure", 446 | "strokeWidth": 1, 447 | "strokeStyle": "solid", 448 | "roughness": 1, 449 | "opacity": 60, 450 | "angle": 0, 451 | "x": 1184.3017973284366, 452 | "y": 301.2412600932523, 453 | "strokeColor": "#1864ab", 454 | "backgroundColor": "#228be6", 455 | "width": 86.07335001258026, 456 | "height": 86.07335001258026, 457 | "seed": 436216595, 458 | "groupIds": [], 459 | "strokeSharpness": "sharp", 460 | "boundElements": [ 461 | { 462 | "id": "j3wrlaDWlTMDmxe78EJ5c", 463 | "type": "text" 464 | }, 465 | { 466 | "type": "text", 467 | "id": "j3wrlaDWlTMDmxe78EJ5c" 468 | }, 469 | { 470 | "id": "gQ91-adUOze2OIS3MaNVw", 471 | "type": "arrow" 472 | } 473 | ], 474 | "updated": 1654005907313, 475 | "link": null, 476 | "locked": false 477 | }, 478 | { 479 | "type": "text", 480 | "version": 1682, 481 | "versionNonce": 274670067, 482 | "isDeleted": false, 483 | "id": "j3wrlaDWlTMDmxe78EJ5c", 484 | "fillStyle": "hachure", 485 | "strokeWidth": 1, 486 | "strokeStyle": "solid", 487 | "roughness": 1, 488 | "opacity": 100, 489 | "angle": 0, 490 | "x": 1189.3017973284366, 491 | "y": 336.27793509954245, 492 | "strokeColor": "#000000", 493 | "backgroundColor": "#fab005", 494 | "width": 76, 495 | "height": 16, 496 | "seed": 534088605, 497 | "groupIds": [], 498 | "strokeSharpness": "sharp", 499 | "boundElements": [], 500 | "updated": 1654005907313, 501 | "link": null, 502 | "locked": false, 503 | "fontSize": 12.171736002012837, 504 | "fontFamily": 1, 505 | "text": "Service D", 506 | "baseline": 11, 507 | "textAlign": "center", 508 | "verticalAlign": "middle", 509 | "containerId": "jejFBhxbde4YICEpzWT-2", 510 | "originalText": "Service D" 511 | }, 512 | { 513 | "type": "ellipse", 514 | "version": 1613, 515 | "versionNonce": 34761405, 516 | "isDeleted": false, 517 | "id": "nRqayjAMxYYsZ2abG1k0C", 518 | "fillStyle": "hachure", 519 | "strokeWidth": 1, 520 | "strokeStyle": "solid", 521 | "roughness": 1, 522 | "opacity": 60, 523 | "angle": 0, 524 | "x": 1187.0378217099828, 525 | "y": 424.3466257216794, 526 | "strokeColor": "#5f3dc4", 527 | "backgroundColor": "#7950f2", 528 | "width": 86.07335001258026, 529 | "height": 86.07335001258026, 530 | "seed": 449857715, 531 | "groupIds": [], 532 | "strokeSharpness": "sharp", 533 | "boundElements": [ 534 | { 535 | "id": "g_PsrqU-Gbw1z0NRAxlj6", 536 | "type": "text" 537 | }, 538 | { 539 | "id": "g_PsrqU-Gbw1z0NRAxlj6", 540 | "type": "text" 541 | }, 542 | { 543 | "type": "text", 544 | "id": "g_PsrqU-Gbw1z0NRAxlj6" 545 | }, 546 | { 547 | "id": "hdOb22SlmOlR5DfjRFvUC", 548 | "type": "arrow" 549 | } 550 | ], 551 | "updated": 1654005907313, 552 | "link": null, 553 | "locked": false 554 | }, 555 | { 556 | "type": "text", 557 | "version": 1721, 558 | "versionNonce": 783051667, 559 | "isDeleted": false, 560 | "id": "g_PsrqU-Gbw1z0NRAxlj6", 561 | "fillStyle": "hachure", 562 | "strokeWidth": 1, 563 | "strokeStyle": "solid", 564 | "roughness": 1, 565 | "opacity": 100, 566 | "angle": 0, 567 | "x": 1192.0378217099828, 568 | "y": 459.3833007279695, 569 | "strokeColor": "#000000", 570 | "backgroundColor": "#fab005", 571 | "width": 76, 572 | "height": 16, 573 | "seed": 1874595837, 574 | "groupIds": [], 575 | "strokeSharpness": "sharp", 576 | "boundElements": [], 577 | "updated": 1654005907313, 578 | "link": null, 579 | "locked": false, 580 | "fontSize": 12.171736002012837, 581 | "fontFamily": 1, 582 | "text": "Service F", 583 | "baseline": 11, 584 | "textAlign": "center", 585 | "verticalAlign": "middle", 586 | "containerId": "nRqayjAMxYYsZ2abG1k0C", 587 | "originalText": "Service F" 588 | }, 589 | { 590 | "type": "ellipse", 591 | "version": 1727, 592 | "versionNonce": 827329309, 593 | "isDeleted": false, 594 | "id": "TbpBPKw3KfAR70MCs3yvr", 595 | "fillStyle": "hachure", 596 | "strokeWidth": 1, 597 | "strokeStyle": "solid", 598 | "roughness": 1, 599 | "opacity": 60, 600 | "angle": 0, 601 | "x": 1186.100383582617, 602 | "y": 549.6227975602151, 603 | "strokeColor": "#d9480f", 604 | "backgroundColor": "#fd7e14", 605 | "width": 86.07335001258026, 606 | "height": 86.07335001258026, 607 | "seed": 97172051, 608 | "groupIds": [], 609 | "strokeSharpness": "sharp", 610 | "boundElements": [ 611 | { 612 | "id": "sS20rwoGB2m4UsviRiV6f", 613 | "type": "text" 614 | }, 615 | { 616 | "id": "sS20rwoGB2m4UsviRiV6f", 617 | "type": "text" 618 | }, 619 | { 620 | "id": "sS20rwoGB2m4UsviRiV6f", 621 | "type": "text" 622 | }, 623 | { 624 | "type": "text", 625 | "id": "sS20rwoGB2m4UsviRiV6f" 626 | }, 627 | { 628 | "id": "dwz6-LSGwYgf0ghXTbnuQ", 629 | "type": "arrow" 630 | } 631 | ], 632 | "updated": 1654005907313, 633 | "link": null, 634 | "locked": false 635 | }, 636 | { 637 | "type": "text", 638 | "version": 1828, 639 | "versionNonce": 695713523, 640 | "isDeleted": false, 641 | "id": "sS20rwoGB2m4UsviRiV6f", 642 | "fillStyle": "hachure", 643 | "strokeWidth": 1, 644 | "strokeStyle": "solid", 645 | "roughness": 1, 646 | "opacity": 100, 647 | "angle": 0, 648 | "x": 1191.100383582617, 649 | "y": 584.6594725665052, 650 | "strokeColor": "#d9480f", 651 | "backgroundColor": "#fab005", 652 | "width": 76, 653 | "height": 16, 654 | "seed": 487786589, 655 | "groupIds": [], 656 | "strokeSharpness": "sharp", 657 | "boundElements": [], 658 | "updated": 1654005935800, 659 | "link": null, 660 | "locked": false, 661 | "fontSize": 12.171736002012837, 662 | "fontFamily": 1, 663 | "text": "Service C", 664 | "baseline": 11, 665 | "textAlign": "center", 666 | "verticalAlign": "middle", 667 | "containerId": "TbpBPKw3KfAR70MCs3yvr", 668 | "originalText": "Service C" 669 | }, 670 | { 671 | "id": "VXnVJ0mqLMaTQ-U57jonu", 672 | "type": "arrow", 673 | "x": 561.6224970726884, 674 | "y": 348.7641582243965, 675 | "width": 143.20436774310213, 676 | "height": 103.38341549087193, 677 | "angle": 0, 678 | "strokeColor": "#000000", 679 | "backgroundColor": "#fd7e14", 680 | "fillStyle": "hachure", 681 | "strokeWidth": 1, 682 | "strokeStyle": "dashed", 683 | "roughness": 1, 684 | "opacity": 50, 685 | "groupIds": [], 686 | "strokeSharpness": "round", 687 | "seed": 84227123, 688 | "version": 405, 689 | "versionNonce": 2092605309, 690 | "isDeleted": false, 691 | "boundElements": null, 692 | "updated": 1654005907313, 693 | "link": null, 694 | "locked": false, 695 | "points": [ 696 | [ 697 | 0, 698 | 0 699 | ], 700 | [ 701 | 143.20436774310213, 702 | 103.38341549087193 703 | ] 704 | ], 705 | "lastCommittedPoint": null, 706 | "startBinding": { 707 | "elementId": "ypSbzFxm-1jTZY4Nd63k8", 708 | "focus": -0.6758015634903618, 709 | "gap": 13.76271696299164 710 | }, 711 | "endBinding": { 712 | "elementId": "2lPJ_neSGNI9OuKWXVy_M", 713 | "focus": -0.08211626461272276, 714 | "gap": 7.983987136979369 715 | }, 716 | "startArrowhead": null, 717 | "endArrowhead": "triangle" 718 | }, 719 | { 720 | "type": "arrow", 721 | "version": 745, 722 | "versionNonce": 962519763, 723 | "isDeleted": false, 724 | "id": "yOkxqtyp3aQtMYlhlFCNM", 725 | "fillStyle": "hachure", 726 | "strokeWidth": 1, 727 | "strokeStyle": "dashed", 728 | "roughness": 1, 729 | "opacity": 50, 730 | "angle": 0, 731 | "x": 558.1596549271965, 732 | "y": 467.477881953646, 733 | "strokeColor": "#000000", 734 | "backgroundColor": "#fd7e14", 735 | "width": 145.52900807999117, 736 | "height": 1.861641610616175, 737 | "seed": 1721968051, 738 | "groupIds": [], 739 | "strokeSharpness": "round", 740 | "boundElements": [], 741 | "updated": 1654005907313, 742 | "link": null, 743 | "locked": false, 744 | "startBinding": { 745 | "elementId": "wK6zW641R7n-Av0c1N7Za", 746 | "focus": -0.006149733602746421, 747 | "gap": 11.346326637871009 748 | }, 749 | "endBinding": { 750 | "elementId": "2lPJ_neSGNI9OuKWXVy_M", 751 | "focus": -0.09857458767053852, 752 | "gap": 8.2691049934533 753 | }, 754 | "lastCommittedPoint": null, 755 | "startArrowhead": null, 756 | "endArrowhead": "triangle", 757 | "points": [ 758 | [ 759 | 0, 760 | 0 761 | ], 762 | [ 763 | 145.52900807999117, 764 | 1.861641610616175 765 | ] 766 | ] 767 | }, 768 | { 769 | "type": "arrow", 770 | "version": 1137, 771 | "versionNonce": 982755293, 772 | "isDeleted": false, 773 | "id": "cIF9uPht5M8qwxRKfHjYz", 774 | "fillStyle": "hachure", 775 | "strokeWidth": 1, 776 | "strokeStyle": "dashed", 777 | "roughness": 1, 778 | "opacity": 50, 779 | "angle": 0, 780 | "x": 557.0364946581221, 781 | "y": 592.4715874098179, 782 | "strokeColor": "#000000", 783 | "backgroundColor": "#fd7e14", 784 | "width": 149.3285140978669, 785 | "height": 106.84170227099298, 786 | "seed": 206958205, 787 | "groupIds": [], 788 | "strokeSharpness": "round", 789 | "boundElements": [], 790 | "updated": 1654005907313, 791 | "link": null, 792 | "locked": false, 793 | "startBinding": { 794 | "elementId": "PMxCNcS3_8yNCj5yWFLAk", 795 | "focus": 0.7405248584568724, 796 | "gap": 11.158903902114723 797 | }, 798 | "endBinding": { 799 | "elementId": "2lPJ_neSGNI9OuKWXVy_M", 800 | "focus": -0.1009325884738913, 801 | "gap": 7.633106071884566 802 | }, 803 | "lastCommittedPoint": null, 804 | "startArrowhead": "triangle", 805 | "endArrowhead": null, 806 | "points": [ 807 | [ 808 | 0, 809 | 0 810 | ], 811 | [ 812 | 149.3285140978669, 813 | -106.84170227099298 814 | ] 815 | ] 816 | }, 817 | { 818 | "type": "arrow", 819 | "version": 916, 820 | "versionNonce": 666964083, 821 | "isDeleted": false, 822 | "id": "gQ91-adUOze2OIS3MaNVw", 823 | "fillStyle": "hachure", 824 | "strokeWidth": 1, 825 | "strokeStyle": "dashed", 826 | "roughness": 1, 827 | "opacity": 50, 828 | "angle": 0, 829 | "x": 1174.1962824154205, 830 | "y": 350.7599558886959, 831 | "strokeColor": "#000000", 832 | "backgroundColor": "#fd7e14", 833 | "width": 146.25986195955738, 834 | "height": 100.380738159911, 835 | "seed": 426295411, 836 | "groupIds": [], 837 | "strokeSharpness": "round", 838 | "boundElements": [], 839 | "updated": 1654005907313, 840 | "link": null, 841 | "locked": false, 842 | "startBinding": { 843 | "elementId": "jejFBhxbde4YICEpzWT-2", 844 | "focus": 0.5751231348213749, 845 | "gap": 10.499377733248245 846 | }, 847 | "endBinding": { 848 | "elementId": "UfYAcTNm9evoptxfe6AiZ", 849 | "focus": 0.030510323237433155, 850 | "gap": 7.578038112293836 851 | }, 852 | "lastCommittedPoint": null, 853 | "startArrowhead": null, 854 | "endArrowhead": "triangle", 855 | "points": [ 856 | [ 857 | 0, 858 | 0 859 | ], 860 | [ 861 | -146.25986195955738, 862 | 100.380738159911 863 | ] 864 | ] 865 | }, 866 | { 867 | "type": "arrow", 868 | "version": 1176, 869 | "versionNonce": 2095883325, 870 | "isDeleted": false, 871 | "id": "hdOb22SlmOlR5DfjRFvUC", 872 | "fillStyle": "hachure", 873 | "strokeWidth": 1, 874 | "strokeStyle": "dashed", 875 | "roughness": 1, 876 | "opacity": 50, 877 | "angle": 0, 878 | "x": 1174.9672534590209, 879 | "y": 471.84743760299466, 880 | "strokeColor": "#000000", 881 | "backgroundColor": "#fd7e14", 882 | "width": 144.70292640573257, 883 | "height": 1.288276649636714, 884 | "seed": 465985075, 885 | "groupIds": [], 886 | "strokeSharpness": "round", 887 | "boundElements": [], 888 | "updated": 1654005907313, 889 | "link": null, 890 | "locked": false, 891 | "startBinding": { 892 | "elementId": "nRqayjAMxYYsZ2abG1k0C", 893 | "focus": -0.11421534196874004, 894 | "gap": 12.251088354628266 895 | }, 896 | "endBinding": { 897 | "elementId": "UfYAcTNm9evoptxfe6AiZ", 898 | "focus": 0.11501992743335987, 899 | "gap": 8.959407484011482 900 | }, 901 | "lastCommittedPoint": null, 902 | "startArrowhead": "triangle", 903 | "endArrowhead": null, 904 | "points": [ 905 | [ 906 | 0, 907 | 0 908 | ], 909 | [ 910 | -144.70292640573257, 911 | -1.288276649636714 912 | ] 913 | ] 914 | }, 915 | { 916 | "type": "arrow", 917 | "version": 1385, 918 | "versionNonce": 281840147, 919 | "isDeleted": false, 920 | "id": "dwz6-LSGwYgf0ghXTbnuQ", 921 | "fillStyle": "hachure", 922 | "strokeWidth": 1, 923 | "strokeStyle": "dashed", 924 | "roughness": 1, 925 | "opacity": 50, 926 | "angle": 0, 927 | "x": 1177.038087300921, 928 | "y": 596.3768188702327, 929 | "strokeColor": "#000000", 930 | "backgroundColor": "#fd7e14", 931 | "width": 146.97841228420157, 932 | "height": 108.89400837335006, 933 | "seed": 2144236627, 934 | "groupIds": [], 935 | "strokeSharpness": "round", 936 | "boundElements": [], 937 | "updated": 1654005907313, 938 | "link": null, 939 | "locked": false, 940 | "startBinding": { 941 | "elementId": "TbpBPKw3KfAR70MCs3yvr", 942 | "focus": -0.7913364566661563, 943 | "gap": 9.19474726812475 944 | }, 945 | "endBinding": { 946 | "elementId": "UfYAcTNm9evoptxfe6AiZ", 947 | "focus": 0.0772641650161994, 948 | "gap": 11.14839300593291 949 | }, 950 | "lastCommittedPoint": null, 951 | "startArrowhead": "triangle", 952 | "endArrowhead": null, 953 | "points": [ 954 | [ 955 | 0, 956 | 0 957 | ], 958 | [ 959 | -146.97841228420157, 960 | -108.89400837335006 961 | ] 962 | ] 963 | } 964 | ], 965 | "appState": { 966 | "gridSize": null, 967 | "viewBackgroundColor": "#ffffff" 968 | }, 969 | "files": {} 970 | } -------------------------------------------------------------------------------- /diagrams/message-queues.excalidraw: -------------------------------------------------------------------------------- 1 | { 2 | "type": "excalidraw", 3 | "version": 2, 4 | "source": "https://excalidraw.com", 5 | "elements": [ 6 | { 7 | "type": "line", 8 | "version": 3628, 9 | "versionNonce": 228272229, 10 | "isDeleted": false, 11 | "id": "KyoW3DnEn5Cw4Iy60vFyu", 12 | "fillStyle": "hachure", 13 | "strokeWidth": 1, 14 | "strokeStyle": "solid", 15 | "roughness": 1, 16 | "opacity": 100, 17 | "angle": 4.70956944444772, 18 | "x": 688.0991065665714, 19 | "y": 301.96805698386277, 20 | "strokeColor": "#e67700", 21 | "backgroundColor": "#fab005", 22 | "width": 78.61446649151408, 23 | "height": 342.64015768580487, 24 | "seed": 359316203, 25 | "groupIds": [ 26 | "akcRoIv4QDQeloSBnYL_h", 27 | "W2r5eDL1ndnJQq8TsJNT1" 28 | ], 29 | "strokeSharpness": "sharp", 30 | "boundElements": [], 31 | "updated": 1653738575681, 32 | "link": null, 33 | "locked": false, 34 | "startBinding": null, 35 | "endBinding": null, 36 | "lastCommittedPoint": null, 37 | "startArrowhead": null, 38 | "endArrowhead": null, 39 | "points": [ 40 | [ 41 | -5.551115123125783e-17, 42 | 0.18589923941639983 43 | ], 44 | [ 45 | 78.6144664915141, 46 | -0.11650710006517073 47 | ], 48 | [ 49 | 77.94050152215644, 50 | 308.31046768573185 51 | ], 52 | [ 53 | 37.803802833941205, 54 | 342.52365058573974 55 | ], 56 | [ 57 | 1.2326464571144413, 58 | 306.42271902108905 59 | ], 60 | [ 61 | -5.551115123125783e-17, 62 | 0.18589923941639983 63 | ] 64 | ] 65 | }, 66 | { 67 | "type": "rectangle", 68 | "version": 1545, 69 | "versionNonce": 190168171, 70 | "isDeleted": false, 71 | "id": "RxcCiBQp2H3sZEJk0fjVP", 72 | "fillStyle": "hachure", 73 | "strokeWidth": 1, 74 | "strokeStyle": "solid", 75 | "roughness": 1, 76 | "opacity": 100, 77 | "angle": 0, 78 | "x": 569.4000047047432, 79 | "y": 460.0646384377406, 80 | "strokeColor": "#e67700", 81 | "backgroundColor": "#fab005", 82 | "width": 63.95695891042678, 83 | "height": 42.510314006331754, 84 | "seed": 1474493765, 85 | "groupIds": [ 86 | "5VbbTarKLACEMp4YIP5Fx", 87 | "akcRoIv4QDQeloSBnYL_h", 88 | "W2r5eDL1ndnJQq8TsJNT1" 89 | ], 90 | "strokeSharpness": "sharp", 91 | "boundElements": [], 92 | "updated": 1653738575681, 93 | "link": null, 94 | "locked": false 95 | }, 96 | { 97 | "type": "line", 98 | "version": 2870, 99 | "versionNonce": 1262670789, 100 | "isDeleted": false, 101 | "id": "2YoJm6FYY5IREKqsZawaS", 102 | "fillStyle": "hachure", 103 | "strokeWidth": 1, 104 | "strokeStyle": "solid", 105 | "roughness": 1, 106 | "opacity": 100, 107 | "angle": 0, 108 | "x": 582.4304599300406, 109 | "y": 466.9582247079183, 110 | "strokeColor": "#e67700", 111 | "backgroundColor": "#fab005", 112 | "width": 62.25850033130766, 113 | "height": 20.082127252220506, 114 | "seed": 1237984651, 115 | "groupIds": [ 116 | "5VbbTarKLACEMp4YIP5Fx", 117 | "akcRoIv4QDQeloSBnYL_h", 118 | "W2r5eDL1ndnJQq8TsJNT1" 119 | ], 120 | "strokeSharpness": "sharp", 121 | "boundElements": [], 122 | "updated": 1653738575681, 123 | "link": null, 124 | "locked": false, 125 | "startBinding": null, 126 | "endBinding": null, 127 | "lastCommittedPoint": null, 128 | "startArrowhead": null, 129 | "endArrowhead": null, 130 | "points": [ 131 | [ 132 | 19.623796034940057, 133 | 12.345151852475162 134 | ], 135 | [ 136 | 49.95984017821196, 137 | -7.736975399745358 138 | ], 139 | [ 140 | -12.29866015309571, 141 | -7.491080528151901 142 | ], 143 | [ 144 | 19.623796034940057, 145 | 12.345151852475162 146 | ] 147 | ] 148 | }, 149 | { 150 | "type": "line", 151 | "version": 1811, 152 | "versionNonce": 500758283, 153 | "isDeleted": false, 154 | "id": "iNrSgV_Bpt55CR4lSEq0i", 155 | "fillStyle": "hachure", 156 | "strokeWidth": 1, 157 | "strokeStyle": "dotted", 158 | "roughness": 1, 159 | "opacity": 100, 160 | "angle": 0, 161 | "x": 705.6498689071768, 162 | "y": 481.4122256526579, 163 | "strokeColor": "#e67700", 164 | "backgroundColor": "#fab005", 165 | "width": 80.36307260002562, 166 | "height": 1.488761585294984, 167 | "seed": 729615525, 168 | "groupIds": [ 169 | "akcRoIv4QDQeloSBnYL_h", 170 | "W2r5eDL1ndnJQq8TsJNT1" 171 | ], 172 | "strokeSharpness": "sharp", 173 | "boundElements": [], 174 | "updated": 1653738575681, 175 | "link": null, 176 | "locked": false, 177 | "startBinding": null, 178 | "endBinding": null, 179 | "lastCommittedPoint": null, 180 | "startArrowhead": null, 181 | "endArrowhead": null, 182 | "points": [ 183 | [ 184 | 0, 185 | 0 186 | ], 187 | [ 188 | 80.36307260002562, 189 | -1.488761585294984 190 | ] 191 | ] 192 | }, 193 | { 194 | "type": "rectangle", 195 | "version": 1621, 196 | "versionNonce": 27136805, 197 | "isDeleted": false, 198 | "id": "VGQvUIJ31Q7bwo7SmBvT-", 199 | "fillStyle": "hachure", 200 | "strokeWidth": 1, 201 | "strokeStyle": "solid", 202 | "roughness": 1, 203 | "opacity": 100, 204 | "angle": 0, 205 | "x": 645.8514733797194, 206 | "y": 460.43278355174283, 207 | "strokeColor": "#e67700", 208 | "backgroundColor": "#fab005", 209 | "width": 63.95695891042678, 210 | "height": 42.510314006331754, 211 | "seed": 539180075, 212 | "groupIds": [ 213 | "4ubazNO_Rgx8tBETr8Oxw", 214 | "akcRoIv4QDQeloSBnYL_h", 215 | "W2r5eDL1ndnJQq8TsJNT1" 216 | ], 217 | "strokeSharpness": "sharp", 218 | "boundElements": [], 219 | "updated": 1653738575681, 220 | "link": null, 221 | "locked": false 222 | }, 223 | { 224 | "type": "line", 225 | "version": 2943, 226 | "versionNonce": 2103172523, 227 | "isDeleted": false, 228 | "id": "XI48d0z3uny1zIs8Qx_5u", 229 | "fillStyle": "hachure", 230 | "strokeWidth": 1, 231 | "strokeStyle": "solid", 232 | "roughness": 1, 233 | "opacity": 100, 234 | "angle": 0, 235 | "x": 658.9804623851171, 236 | "y": 466.2421078389148, 237 | "strokeColor": "#e67700", 238 | "backgroundColor": "#fab005", 239 | "width": 62.25850033130766, 240 | "height": 20.082127252220506, 241 | "seed": 1407070213, 242 | "groupIds": [ 243 | "4ubazNO_Rgx8tBETr8Oxw", 244 | "akcRoIv4QDQeloSBnYL_h", 245 | "W2r5eDL1ndnJQq8TsJNT1" 246 | ], 247 | "strokeSharpness": "sharp", 248 | "boundElements": [], 249 | "updated": 1653738575681, 250 | "link": null, 251 | "locked": false, 252 | "startBinding": null, 253 | "endBinding": null, 254 | "lastCommittedPoint": null, 255 | "startArrowhead": null, 256 | "endArrowhead": null, 257 | "points": [ 258 | [ 259 | 19.623796034940057, 260 | 12.345151852475162 261 | ], 262 | [ 263 | 49.95984017821196, 264 | -7.736975399745358 265 | ], 266 | [ 267 | -12.29866015309571, 268 | -7.491080528151901 269 | ], 270 | [ 271 | 19.623796034940057, 272 | 12.345151852475162 273 | ] 274 | ] 275 | }, 276 | { 277 | "type": "rectangle", 278 | "version": 1670, 279 | "versionNonce": 2098882181, 280 | "isDeleted": false, 281 | "id": "490FefsrT7qFyF1VvykvW", 282 | "fillStyle": "hachure", 283 | "strokeWidth": 1, 284 | "strokeStyle": "solid", 285 | "roughness": 1, 286 | "opacity": 100, 287 | "angle": 0, 288 | "x": 783.0468858654463, 289 | "y": 458.9602030957241, 290 | "strokeColor": "#e67700", 291 | "backgroundColor": "#fab005", 292 | "width": 63.95695891042678, 293 | "height": 42.510314006331754, 294 | "seed": 73432779, 295 | "groupIds": [ 296 | "ZaBryPxLQY4K6fOIfUPH8", 297 | "akcRoIv4QDQeloSBnYL_h", 298 | "W2r5eDL1ndnJQq8TsJNT1" 299 | ], 300 | "strokeSharpness": "sharp", 301 | "boundElements": [], 302 | "updated": 1653738575681, 303 | "link": null, 304 | "locked": false 305 | }, 306 | { 307 | "type": "line", 308 | "version": 3028, 309 | "versionNonce": 1158213707, 310 | "isDeleted": false, 311 | "id": "mhdYrcXUofjyb48fWv6LG", 312 | "fillStyle": "hachure", 313 | "strokeWidth": 1, 314 | "strokeStyle": "solid", 315 | "roughness": 1, 316 | "opacity": 100, 317 | "angle": 0, 318 | "x": 797.2063850052953, 319 | "y": 464.2708672674753, 320 | "strokeColor": "#e67700", 321 | "backgroundColor": "#fab005", 322 | "width": 62.25850033130766, 323 | "height": 20.082127252220506, 324 | "seed": 1325655909, 325 | "groupIds": [ 326 | "ZaBryPxLQY4K6fOIfUPH8", 327 | "akcRoIv4QDQeloSBnYL_h", 328 | "W2r5eDL1ndnJQq8TsJNT1" 329 | ], 330 | "strokeSharpness": "sharp", 331 | "boundElements": [], 332 | "updated": 1653738575681, 333 | "link": null, 334 | "locked": false, 335 | "startBinding": null, 336 | "endBinding": null, 337 | "lastCommittedPoint": null, 338 | "startArrowhead": null, 339 | "endArrowhead": null, 340 | "points": [ 341 | [ 342 | 19.623796034940057, 343 | 12.345151852475162 344 | ], 345 | [ 346 | 49.95984017821196, 347 | -7.736975399745358 348 | ], 349 | [ 350 | -12.29866015309571, 351 | -7.491080528151901 352 | ], 353 | [ 354 | 19.623796034940057, 355 | 12.345151852475162 356 | ] 357 | ] 358 | }, 359 | { 360 | "type": "text", 361 | "version": 946, 362 | "versionNonce": 544558565, 363 | "isDeleted": false, 364 | "id": "EImb3xVFWe3A6WfhGPqle", 365 | "fillStyle": "hachure", 366 | "strokeWidth": 1, 367 | "strokeStyle": "solid", 368 | "roughness": 1, 369 | "opacity": 100, 370 | "angle": 0, 371 | "x": 651.6092846220926, 372 | "y": 530.0039397534084, 373 | "strokeColor": "#000000", 374 | "backgroundColor": "#fab005", 375 | "width": 152, 376 | "height": 25, 377 | "seed": 18640235, 378 | "groupIds": [ 379 | "W2r5eDL1ndnJQq8TsJNT1" 380 | ], 381 | "strokeSharpness": "sharp", 382 | "boundElements": [], 383 | "updated": 1653738575682, 384 | "link": null, 385 | "locked": false, 386 | "fontSize": 20, 387 | "fontFamily": 1, 388 | "text": "Message Queue", 389 | "baseline": 18, 390 | "textAlign": "center", 391 | "verticalAlign": "top", 392 | "containerId": null, 393 | "originalText": "Message Queue" 394 | }, 395 | { 396 | "id": "SHfja2dEWlBM6ywY11Q4D", 397 | "type": "ellipse", 398 | "x": 176.70870572629627, 399 | "y": 396.1851231364917, 400 | "width": 151.44994056587063, 401 | "height": 151.44994056587063, 402 | "angle": 0, 403 | "strokeColor": "#c92a2a", 404 | "backgroundColor": "#fa5252", 405 | "fillStyle": "hachure", 406 | "strokeWidth": 1, 407 | "strokeStyle": "solid", 408 | "roughness": 1, 409 | "opacity": 100, 410 | "groupIds": [], 411 | "strokeSharpness": "sharp", 412 | "seed": 308384421, 413 | "version": 467, 414 | "versionNonce": 218509355, 415 | "isDeleted": false, 416 | "boundElements": [ 417 | { 418 | "type": "text", 419 | "id": "xFNzLMVZE8x1K3vPqbGWA" 420 | }, 421 | { 422 | "id": "1JRoA2wTzjGyN_057vaWf", 423 | "type": "arrow" 424 | } 425 | ], 426 | "updated": 1653738575682, 427 | "link": null, 428 | "locked": false 429 | }, 430 | { 431 | "id": "xFNzLMVZE8x1K3vPqbGWA", 432 | "type": "text", 433 | "x": 181.70870572629627, 434 | "y": 459.410093419427, 435 | "width": 141, 436 | "height": 25, 437 | "angle": 0, 438 | "strokeColor": "#000000", 439 | "backgroundColor": "#fab005", 440 | "fillStyle": "hachure", 441 | "strokeWidth": 1, 442 | "strokeStyle": "solid", 443 | "roughness": 1, 444 | "opacity": 100, 445 | "groupIds": [], 446 | "strokeSharpness": "sharp", 447 | "seed": 886835909, 448 | "version": 258, 449 | "versionNonce": 1347466085, 450 | "isDeleted": false, 451 | "boundElements": null, 452 | "updated": 1653738575682, 453 | "link": null, 454 | "locked": false, 455 | "text": "Producer", 456 | "fontSize": 20, 457 | "fontFamily": 1, 458 | "textAlign": "center", 459 | "verticalAlign": "middle", 460 | "baseline": 18, 461 | "containerId": "SHfja2dEWlBM6ywY11Q4D", 462 | "originalText": "Producer" 463 | }, 464 | { 465 | "type": "ellipse", 466 | "version": 736, 467 | "versionNonce": 550658411, 468 | "isDeleted": false, 469 | "id": "HM3YfZGzPYpeikGPjWS-x", 470 | "fillStyle": "hachure", 471 | "strokeWidth": 1, 472 | "strokeStyle": "solid", 473 | "roughness": 1, 474 | "opacity": 100, 475 | "angle": 0, 476 | "x": 1125.5892439856489, 477 | "y": 395.3316507325577, 478 | "strokeColor": "#5c940d", 479 | "backgroundColor": "#82c91e", 480 | "width": 151.44994056587063, 481 | "height": 151.44994056587063, 482 | "seed": 1897094469, 483 | "groupIds": [], 484 | "strokeSharpness": "sharp", 485 | "boundElements": [ 486 | { 487 | "id": "AgB7Ytqn3KwHTzkzMFw_q", 488 | "type": "text" 489 | }, 490 | { 491 | "type": "text", 492 | "id": "AgB7Ytqn3KwHTzkzMFw_q" 493 | }, 494 | { 495 | "id": "ILe4_nojxKkH0BuVpcc2S", 496 | "type": "arrow" 497 | } 498 | ], 499 | "updated": 1653738575682, 500 | "link": null, 501 | "locked": false 502 | }, 503 | { 504 | "type": "text", 505 | "version": 543, 506 | "versionNonce": 1427046085, 507 | "isDeleted": false, 508 | "id": "AgB7Ytqn3KwHTzkzMFw_q", 509 | "fillStyle": "hachure", 510 | "strokeWidth": 1, 511 | "strokeStyle": "solid", 512 | "roughness": 1, 513 | "opacity": 100, 514 | "angle": 0, 515 | "x": 1130.5892439856489, 516 | "y": 458.556621015493, 517 | "strokeColor": "#000000", 518 | "backgroundColor": "#fab005", 519 | "width": 141, 520 | "height": 25, 521 | "seed": 1649395083, 522 | "groupIds": [], 523 | "strokeSharpness": "sharp", 524 | "boundElements": [], 525 | "updated": 1653738575682, 526 | "link": null, 527 | "locked": false, 528 | "fontSize": 20, 529 | "fontFamily": 1, 530 | "text": "Consumer", 531 | "baseline": 18, 532 | "textAlign": "center", 533 | "verticalAlign": "middle", 534 | "containerId": "HM3YfZGzPYpeikGPjWS-x", 535 | "originalText": "Consumer" 536 | }, 537 | { 538 | "id": "1JRoA2wTzjGyN_057vaWf", 539 | "type": "arrow", 540 | "x": 344.6186512109608, 541 | "y": 474.0732077639849, 542 | "width": 196.14470859770205, 543 | "height": 1.1795496593179564, 544 | "angle": 0, 545 | "strokeColor": "#000000", 546 | "backgroundColor": "#15aabf", 547 | "fillStyle": "hachure", 548 | "strokeWidth": 1, 549 | "strokeStyle": "dashed", 550 | "roughness": 1, 551 | "opacity": 50, 552 | "groupIds": [], 553 | "strokeSharpness": "round", 554 | "seed": 1694419243, 555 | "version": 548, 556 | "versionNonce": 1035158187, 557 | "isDeleted": false, 558 | "boundElements": null, 559 | "updated": 1653738575682, 560 | "link": null, 561 | "locked": false, 562 | "points": [ 563 | [ 564 | 0, 565 | 0 566 | ], 567 | [ 568 | 196.14470859770205, 569 | -1.1795496593179564 570 | ] 571 | ], 572 | "lastCommittedPoint": null, 573 | "startBinding": { 574 | "elementId": "SHfja2dEWlBM6ywY11Q4D", 575 | "focus": 0.03588559056784105, 576 | "gap": 16.485380093858424 577 | }, 578 | "endBinding": null, 579 | "startArrowhead": null, 580 | "endArrowhead": "triangle" 581 | }, 582 | { 583 | "type": "arrow", 584 | "version": 829, 585 | "versionNonce": 471323013, 586 | "isDeleted": false, 587 | "id": "ILe4_nojxKkH0BuVpcc2S", 588 | "fillStyle": "hachure", 589 | "strokeWidth": 1, 590 | "strokeStyle": "dashed", 591 | "roughness": 1, 592 | "opacity": 50, 593 | "angle": 0, 594 | "x": 912.9642406158554, 595 | "y": 473.98800716213736, 596 | "strokeColor": "#000000", 597 | "backgroundColor": "#15aabf", 598 | "width": 197.84257101551026, 599 | "height": 0.2567109992299379, 600 | "seed": 857042789, 601 | "groupIds": [], 602 | "strokeSharpness": "round", 603 | "boundElements": [], 604 | "updated": 1653738575682, 605 | "link": null, 606 | "locked": false, 607 | "startBinding": null, 608 | "endBinding": { 609 | "elementId": "HM3YfZGzPYpeikGPjWS-x", 610 | "focus": -0.04210100227127749, 611 | "gap": 14.838564848745122 612 | }, 613 | "lastCommittedPoint": null, 614 | "startArrowhead": null, 615 | "endArrowhead": "triangle", 616 | "points": [ 617 | [ 618 | 0, 619 | 0 620 | ], 621 | [ 622 | 197.84257101551026, 623 | 0.2567109992299379 624 | ] 625 | ] 626 | } 627 | ], 628 | "appState": { 629 | "gridSize": null, 630 | "viewBackgroundColor": "#ffffff" 631 | }, 632 | "files": {} 633 | } -------------------------------------------------------------------------------- /diagrams/osi.excalidraw: -------------------------------------------------------------------------------- 1 | { 2 | "type": "excalidraw", 3 | "version": 2, 4 | "source": "https://excalidraw.com", 5 | "elements": [ 6 | { 7 | "type": "rectangle", 8 | "version": 434, 9 | "versionNonce": 678130470, 10 | "isDeleted": false, 11 | "id": "_3D8eSMvmHX11JohvCIV9", 12 | "fillStyle": "hachure", 13 | "strokeWidth": 1, 14 | "strokeStyle": "solid", 15 | "roughness": 1, 16 | "opacity": 60, 17 | "angle": 0, 18 | "x": 294.41581964166295, 19 | "y": 573.486409820546, 20 | "strokeColor": "#a61e4d", 21 | "backgroundColor": "#e64980", 22 | "width": 261.2216477290561, 23 | "height": 84.03603123743147, 24 | "seed": 1646572307, 25 | "groupIds": [], 26 | "strokeSharpness": "round", 27 | "boundElements": [ 28 | { 29 | "type": "text", 30 | "id": "gr6Pt88_DLK5ck8m1sttQ" 31 | } 32 | ], 33 | "updated": 1657361799337, 34 | "link": null, 35 | "locked": false 36 | }, 37 | { 38 | "type": "rectangle", 39 | "version": 607, 40 | "versionNonce": 2090154554, 41 | "isDeleted": false, 42 | "id": "PxK9KDH4zOEbdAEJkZC3o", 43 | "fillStyle": "hachure", 44 | "strokeWidth": 1, 45 | "strokeStyle": "solid", 46 | "roughness": 1, 47 | "opacity": 60, 48 | "angle": 0, 49 | "x": 294.10531703210455, 50 | "y": 457.80003493558, 51 | "strokeColor": "#087f5b", 52 | "backgroundColor": "#12b886", 53 | "width": 261.2216477290561, 54 | "height": 84.03603123743147, 55 | "seed": 1928238163, 56 | "groupIds": [], 57 | "strokeSharpness": "round", 58 | "boundElements": [ 59 | { 60 | "type": "text", 61 | "id": "Blogqpquu9F6nDhwejYs8" 62 | } 63 | ], 64 | "updated": 1657361799337, 65 | "link": null, 66 | "locked": false 67 | }, 68 | { 69 | "type": "rectangle", 70 | "version": 624, 71 | "versionNonce": 773725798, 72 | "isDeleted": false, 73 | "id": "KVTiFvIDH78cR_xI3Qk9p", 74 | "fillStyle": "hachure", 75 | "strokeWidth": 1, 76 | "strokeStyle": "solid", 77 | "roughness": 1, 78 | "opacity": 60, 79 | "angle": 0, 80 | "x": 295.3996890803631, 81 | "y": 341.81718754791905, 82 | "strokeColor": "#d9480f", 83 | "backgroundColor": "#fd7e14", 84 | "width": 261.2216477290561, 85 | "height": 84.03603123743147, 86 | "seed": 2017704701, 87 | "groupIds": [], 88 | "strokeSharpness": "round", 89 | "boundElements": [ 90 | { 91 | "type": "text", 92 | "id": "wNvk7e25V0IUxZlBAUugS" 93 | } 94 | ], 95 | "updated": 1657361799337, 96 | "link": null, 97 | "locked": false 98 | }, 99 | { 100 | "type": "rectangle", 101 | "version": 799, 102 | "versionNonce": 1629872890, 103 | "isDeleted": false, 104 | "id": "VwqOLkGxmTdxYJuFj0VOw", 105 | "fillStyle": "hachure", 106 | "strokeWidth": 1, 107 | "strokeStyle": "solid", 108 | "roughness": 1, 109 | "opacity": 60, 110 | "angle": 0, 111 | "x": 295.8213489781643, 112 | "y": 227.90940646805143, 113 | "strokeColor": "#862e9c", 114 | "backgroundColor": "#be4bdb", 115 | "width": 261.2216477290561, 116 | "height": 84.03603123743147, 117 | "seed": 345035293, 118 | "groupIds": [], 119 | "strokeSharpness": "round", 120 | "boundElements": [ 121 | { 122 | "type": "text", 123 | "id": "W9Tnz-CGB7BEnvsp4SvJj" 124 | } 125 | ], 126 | "updated": 1657361799337, 127 | "link": null, 128 | "locked": false 129 | }, 130 | { 131 | "type": "rectangle", 132 | "version": 883, 133 | "versionNonce": 383345062, 134 | "isDeleted": false, 135 | "id": "xH_A4tdEE1OjexrNTrsrq", 136 | "fillStyle": "hachure", 137 | "strokeWidth": 1, 138 | "strokeStyle": "solid", 139 | "roughness": 1, 140 | "opacity": 60, 141 | "angle": 0, 142 | "x": 296.9023448915126, 143 | "y": 112.95167748503263, 144 | "strokeColor": "#0b7285", 145 | "backgroundColor": "#15aabf", 146 | "width": 261.2216477290561, 147 | "height": 84.03603123743147, 148 | "seed": 1503063517, 149 | "groupIds": [], 150 | "strokeSharpness": "round", 151 | "boundElements": [ 152 | { 153 | "type": "text", 154 | "id": "GM2HkvG7nWJRmzg33JwRc" 155 | } 156 | ], 157 | "updated": 1657361799337, 158 | "link": null, 159 | "locked": false 160 | }, 161 | { 162 | "type": "rectangle", 163 | "version": 947, 164 | "versionNonce": 1730376634, 165 | "isDeleted": false, 166 | "id": "eXbWaDD_Yr5GJDYzWbrfo", 167 | "fillStyle": "hachure", 168 | "strokeWidth": 1, 169 | "strokeStyle": "solid", 170 | "roughness": 1, 171 | "opacity": 60, 172 | "angle": 0, 173 | "x": 296.97669093015236, 174 | "y": -2.6228445250992536, 175 | "strokeColor": "#e67700", 176 | "backgroundColor": "#fab005", 177 | "width": 261.2216477290561, 178 | "height": 84.03603123743147, 179 | "seed": 1475169299, 180 | "groupIds": [], 181 | "strokeSharpness": "round", 182 | "boundElements": [ 183 | { 184 | "type": "text", 185 | "id": "dUyInnqRwMZdlmd0hIDO1" 186 | } 187 | ], 188 | "updated": 1657361799337, 189 | "link": null, 190 | "locked": false 191 | }, 192 | { 193 | "type": "rectangle", 194 | "version": 916, 195 | "versionNonce": 634010854, 196 | "isDeleted": false, 197 | "id": "877ZuKsIQsZVDtP5Kld5Z", 198 | "fillStyle": "hachure", 199 | "strokeWidth": 1, 200 | "strokeStyle": "solid", 201 | "roughness": 1, 202 | "opacity": 60, 203 | "angle": 0, 204 | "x": 293.9794260227555, 205 | "y": -117.90357867268366, 206 | "strokeColor": "#5c940d", 207 | "backgroundColor": "#82c91e", 208 | "width": 261.2216477290561, 209 | "height": 84.03603123743147, 210 | "seed": 1870299059, 211 | "groupIds": [], 212 | "strokeSharpness": "round", 213 | "boundElements": [ 214 | { 215 | "type": "text", 216 | "id": "zMPIYrej-zqfi_QVn17-O" 217 | } 218 | ], 219 | "updated": 1657361799337, 220 | "link": null, 221 | "locked": false 222 | }, 223 | { 224 | "type": "text", 225 | "version": 170, 226 | "versionNonce": 832231590, 227 | "isDeleted": false, 228 | "id": "gr6Pt88_DLK5ck8m1sttQ", 229 | "fillStyle": "hachure", 230 | "strokeWidth": 1, 231 | "strokeStyle": "solid", 232 | "roughness": 1, 233 | "opacity": 100, 234 | "angle": 0, 235 | "x": 299.41581964166295, 236 | "y": 603.0044254392617, 237 | "strokeColor": "#000000", 238 | "backgroundColor": "#e64980", 239 | "width": 251, 240 | "height": 25, 241 | "seed": 1868401523, 242 | "groupIds": [], 243 | "strokeSharpness": "round", 244 | "boundElements": [], 245 | "updated": 1657361804674, 246 | "link": null, 247 | "locked": false, 248 | "fontSize": 20, 249 | "fontFamily": 1, 250 | "text": "Physical Layer", 251 | "baseline": 18, 252 | "textAlign": "center", 253 | "verticalAlign": "middle", 254 | "containerId": "_3D8eSMvmHX11JohvCIV9", 255 | "originalText": "Physical Layer" 256 | }, 257 | { 258 | "type": "text", 259 | "version": 248, 260 | "versionNonce": 1552133882, 261 | "isDeleted": false, 262 | "id": "Blogqpquu9F6nDhwejYs8", 263 | "fillStyle": "hachure", 264 | "strokeWidth": 1, 265 | "strokeStyle": "solid", 266 | "roughness": 1, 267 | "opacity": 100, 268 | "angle": 0, 269 | "x": 299.10531703210455, 270 | "y": 487.3180505542957, 271 | "strokeColor": "#000000", 272 | "backgroundColor": "#e64980", 273 | "width": 251, 274 | "height": 25, 275 | "seed": 453982163, 276 | "groupIds": [], 277 | "strokeSharpness": "round", 278 | "boundElements": [], 279 | "updated": 1657361808987, 280 | "link": null, 281 | "locked": false, 282 | "fontSize": 20, 283 | "fontFamily": 1, 284 | "text": "Data Link Layer", 285 | "baseline": 18, 286 | "textAlign": "center", 287 | "verticalAlign": "middle", 288 | "containerId": "PxK9KDH4zOEbdAEJkZC3o", 289 | "originalText": "Data Link Layer" 290 | }, 291 | { 292 | "type": "text", 293 | "version": 144, 294 | "versionNonce": 1464479590, 295 | "isDeleted": false, 296 | "id": "wNvk7e25V0IUxZlBAUugS", 297 | "fillStyle": "hachure", 298 | "strokeWidth": 1, 299 | "strokeStyle": "solid", 300 | "roughness": 1, 301 | "opacity": 100, 302 | "angle": 0, 303 | "x": 300.3996890803631, 304 | "y": 371.33520316663476, 305 | "strokeColor": "#000000", 306 | "backgroundColor": "#e64980", 307 | "width": 251, 308 | "height": 25, 309 | "seed": 1752378867, 310 | "groupIds": [], 311 | "strokeSharpness": "round", 312 | "boundElements": [], 313 | "updated": 1657361817622, 314 | "link": null, 315 | "locked": false, 316 | "fontSize": 20, 317 | "fontFamily": 1, 318 | "text": "Network Layer", 319 | "baseline": 18, 320 | "textAlign": "center", 321 | "verticalAlign": "middle", 322 | "containerId": "KVTiFvIDH78cR_xI3Qk9p", 323 | "originalText": "Network Layer" 324 | }, 325 | { 326 | "type": "text", 327 | "version": 226, 328 | "versionNonce": 1974905722, 329 | "isDeleted": false, 330 | "id": "W9Tnz-CGB7BEnvsp4SvJj", 331 | "fillStyle": "hachure", 332 | "strokeWidth": 1, 333 | "strokeStyle": "solid", 334 | "roughness": 1, 335 | "opacity": 100, 336 | "angle": 0, 337 | "x": 300.8213489781643, 338 | "y": 257.42742208676714, 339 | "strokeColor": "#000000", 340 | "backgroundColor": "#e64980", 341 | "width": 251, 342 | "height": 25, 343 | "seed": 621099379, 344 | "groupIds": [], 345 | "strokeSharpness": "round", 346 | "boundElements": [], 347 | "updated": 1657361821020, 348 | "link": null, 349 | "locked": false, 350 | "fontSize": 20, 351 | "fontFamily": 1, 352 | "text": "Transport Layer", 353 | "baseline": 18, 354 | "textAlign": "center", 355 | "verticalAlign": "middle", 356 | "containerId": "VwqOLkGxmTdxYJuFj0VOw", 357 | "originalText": "Transport Layer" 358 | }, 359 | { 360 | "type": "text", 361 | "version": 181, 362 | "versionNonce": 84514042, 363 | "isDeleted": false, 364 | "id": "GM2HkvG7nWJRmzg33JwRc", 365 | "fillStyle": "hachure", 366 | "strokeWidth": 1, 367 | "strokeStyle": "solid", 368 | "roughness": 1, 369 | "opacity": 100, 370 | "angle": 0, 371 | "x": 301.9023448915126, 372 | "y": 142.46969310374837, 373 | "strokeColor": "#000000", 374 | "backgroundColor": "#e64980", 375 | "width": 251, 376 | "height": 25, 377 | "seed": 479487827, 378 | "groupIds": [], 379 | "strokeSharpness": "round", 380 | "boundElements": [], 381 | "updated": 1657361824787, 382 | "link": null, 383 | "locked": false, 384 | "fontSize": 20, 385 | "fontFamily": 1, 386 | "text": "Session Layer", 387 | "baseline": 18, 388 | "textAlign": "center", 389 | "verticalAlign": "middle", 390 | "containerId": "xH_A4tdEE1OjexrNTrsrq", 391 | "originalText": "Session Layer" 392 | }, 393 | { 394 | "type": "text", 395 | "version": 153, 396 | "versionNonce": 1624252026, 397 | "isDeleted": false, 398 | "id": "dUyInnqRwMZdlmd0hIDO1", 399 | "fillStyle": "hachure", 400 | "strokeWidth": 1, 401 | "strokeStyle": "solid", 402 | "roughness": 1, 403 | "opacity": 100, 404 | "angle": 0, 405 | "x": 301.97669093015236, 406 | "y": 26.895171093616483, 407 | "strokeColor": "#000000", 408 | "backgroundColor": "#e64980", 409 | "width": 251, 410 | "height": 25, 411 | "seed": 1626311453, 412 | "groupIds": [], 413 | "strokeSharpness": "round", 414 | "boundElements": [], 415 | "updated": 1657361828043, 416 | "link": null, 417 | "locked": false, 418 | "fontSize": 20, 419 | "fontFamily": 1, 420 | "text": "Presentation Layer", 421 | "baseline": 18, 422 | "textAlign": "center", 423 | "verticalAlign": "middle", 424 | "containerId": "eXbWaDD_Yr5GJDYzWbrfo", 425 | "originalText": "Presentation Layer" 426 | }, 427 | { 428 | "type": "text", 429 | "version": 34, 430 | "versionNonce": 260164774, 431 | "isDeleted": false, 432 | "id": "zMPIYrej-zqfi_QVn17-O", 433 | "fillStyle": "hachure", 434 | "strokeWidth": 1, 435 | "strokeStyle": "solid", 436 | "roughness": 1, 437 | "opacity": 100, 438 | "angle": 0, 439 | "x": 298.9794260227555, 440 | "y": -88.38556305396793, 441 | "strokeColor": "#000000", 442 | "backgroundColor": "#e64980", 443 | "width": 251, 444 | "height": 25, 445 | "seed": 1095592957, 446 | "groupIds": [], 447 | "strokeSharpness": "round", 448 | "boundElements": [], 449 | "updated": 1657361831154, 450 | "link": null, 451 | "locked": false, 452 | "fontSize": 20, 453 | "fontFamily": 1, 454 | "text": "Application Layer", 455 | "baseline": 18, 456 | "textAlign": "center", 457 | "verticalAlign": "middle", 458 | "containerId": "877ZuKsIQsZVDtP5Kld5Z", 459 | "originalText": "Application Layer" 460 | }, 461 | { 462 | "type": "text", 463 | "version": 160, 464 | "versionNonce": 246186618, 465 | "isDeleted": false, 466 | "id": "436uNbayqYYAr5oia-HLD", 467 | "fillStyle": "hachure", 468 | "strokeWidth": 1, 469 | "strokeStyle": "solid", 470 | "roughness": 1, 471 | "opacity": 100, 472 | "angle": 0, 473 | "x": 249.45027292731123, 474 | "y": -93.13215637491757, 475 | "strokeColor": "#000000", 476 | "backgroundColor": "transparent", 477 | "width": 16, 478 | "height": 36, 479 | "seed": 776462643, 480 | "groupIds": [], 481 | "strokeSharpness": "round", 482 | "boundElements": [], 483 | "updated": 1657361835969, 484 | "link": null, 485 | "locked": false, 486 | "fontSize": 28, 487 | "fontFamily": 1, 488 | "text": "7", 489 | "baseline": 25, 490 | "textAlign": "left", 491 | "verticalAlign": "top", 492 | "containerId": null, 493 | "originalText": "7" 494 | }, 495 | { 496 | "type": "text", 497 | "version": 374, 498 | "versionNonce": 1647213094, 499 | "isDeleted": false, 500 | "id": "nZig6epwoPaH3g16yIrjE", 501 | "fillStyle": "hachure", 502 | "strokeWidth": 1, 503 | "strokeStyle": "solid", 504 | "roughness": 1, 505 | "opacity": 100, 506 | "angle": 0, 507 | "x": 249.81149161699915, 508 | "y": 26.09129802054329, 509 | "strokeColor": "#000000", 510 | "backgroundColor": "transparent", 511 | "width": 19, 512 | "height": 36, 513 | "seed": 507863901, 514 | "groupIds": [], 515 | "strokeSharpness": "round", 516 | "boundElements": [], 517 | "updated": 1657361835969, 518 | "link": null, 519 | "locked": false, 520 | "fontSize": 28, 521 | "fontFamily": 1, 522 | "text": "6", 523 | "baseline": 25, 524 | "textAlign": "left", 525 | "verticalAlign": "top", 526 | "containerId": null, 527 | "originalText": "6" 528 | }, 529 | { 530 | "type": "text", 531 | "version": 470, 532 | "versionNonce": 2041193274, 533 | "isDeleted": false, 534 | "id": "xkyT-S7g0eDzhtj8gQClx", 535 | "fillStyle": "hachure", 536 | "strokeWidth": 1, 537 | "strokeStyle": "solid", 538 | "roughness": 1, 539 | "opacity": 100, 540 | "angle": 0, 541 | "x": 251.21813570924013, 542 | "y": 142.90997396610686, 543 | "strokeColor": "#000000", 544 | "backgroundColor": "transparent", 545 | "width": 18, 546 | "height": 36, 547 | "seed": 648151027, 548 | "groupIds": [], 549 | "strokeSharpness": "round", 550 | "boundElements": [], 551 | "updated": 1657361835969, 552 | "link": null, 553 | "locked": false, 554 | "fontSize": 28, 555 | "fontFamily": 1, 556 | "text": "5", 557 | "baseline": 25, 558 | "textAlign": "left", 559 | "verticalAlign": "top", 560 | "containerId": null, 561 | "originalText": "5" 562 | }, 563 | { 564 | "type": "text", 565 | "version": 583, 566 | "versionNonce": 1743275366, 567 | "isDeleted": false, 568 | "id": "zfciOiJxC_zxcKuMqXQ0R", 569 | "fillStyle": "hachure", 570 | "strokeWidth": 1, 571 | "strokeStyle": "solid", 572 | "roughness": 1, 573 | "opacity": 100, 574 | "angle": 0, 575 | "x": 248.38452536036516, 576 | "y": 256.6258026593629, 577 | "strokeColor": "#000000", 578 | "backgroundColor": "transparent", 579 | "width": 19, 580 | "height": 36, 581 | "seed": 1631102269, 582 | "groupIds": [], 583 | "strokeSharpness": "round", 584 | "boundElements": [], 585 | "updated": 1657361835969, 586 | "link": null, 587 | "locked": false, 588 | "fontSize": 28, 589 | "fontFamily": 1, 590 | "text": "4", 591 | "baseline": 25, 592 | "textAlign": "left", 593 | "verticalAlign": "top", 594 | "containerId": null, 595 | "originalText": "4" 596 | }, 597 | { 598 | "type": "text", 599 | "version": 703, 600 | "versionNonce": 498445306, 601 | "isDeleted": false, 602 | "id": "235bxZAFxYj8YXZ4avRI2", 603 | "fillStyle": "hachure", 604 | "strokeWidth": 1, 605 | "strokeStyle": "solid", 606 | "roughness": 1, 607 | "opacity": 100, 608 | "angle": 0, 609 | "x": 247.02137897695349, 610 | "y": 368.1423086103369, 611 | "strokeColor": "#000000", 612 | "backgroundColor": "transparent", 613 | "width": 20, 614 | "height": 36, 615 | "seed": 181434621, 616 | "groupIds": [], 617 | "strokeSharpness": "round", 618 | "boundElements": [], 619 | "updated": 1657361835969, 620 | "link": null, 621 | "locked": false, 622 | "fontSize": 28, 623 | "fontFamily": 1, 624 | "text": "3", 625 | "baseline": 25, 626 | "textAlign": "left", 627 | "verticalAlign": "top", 628 | "containerId": null, 629 | "originalText": "3" 630 | }, 631 | { 632 | "type": "text", 633 | "version": 824, 634 | "versionNonce": 46573734, 635 | "isDeleted": false, 636 | "id": "w7dcvu--U-3S_XQHGvoI3", 637 | "fillStyle": "hachure", 638 | "strokeWidth": 1, 639 | "strokeStyle": "solid", 640 | "roughness": 1, 641 | "opacity": 100, 642 | "angle": 0, 643 | "x": 245.05591192626434, 644 | "y": 484.44559478239535, 645 | "strokeColor": "#000000", 646 | "backgroundColor": "transparent", 647 | "width": 21, 648 | "height": 36, 649 | "seed": 1555851453, 650 | "groupIds": [], 651 | "strokeSharpness": "round", 652 | "boundElements": [], 653 | "updated": 1657361835969, 654 | "link": null, 655 | "locked": false, 656 | "fontSize": 28, 657 | "fontFamily": 1, 658 | "text": "2", 659 | "baseline": 25, 660 | "textAlign": "left", 661 | "verticalAlign": "top", 662 | "containerId": null, 663 | "originalText": "2" 664 | }, 665 | { 666 | "type": "text", 667 | "version": 949, 668 | "versionNonce": 1892818106, 669 | "isDeleted": false, 670 | "id": "YW_e8gUsmiWzJKuAeBIo9", 671 | "fillStyle": "hachure", 672 | "strokeWidth": 1, 673 | "strokeStyle": "solid", 674 | "roughness": 1, 675 | "opacity": 100, 676 | "angle": 0, 677 | "x": 256.3771620359862, 678 | "y": 600.3576523072695, 679 | "strokeColor": "#000000", 680 | "backgroundColor": "transparent", 681 | "width": 9, 682 | "height": 36, 683 | "seed": 1135950397, 684 | "groupIds": [], 685 | "strokeSharpness": "round", 686 | "boundElements": [], 687 | "updated": 1657361835969, 688 | "link": null, 689 | "locked": false, 690 | "fontSize": 28, 691 | "fontFamily": 1, 692 | "text": "1", 693 | "baseline": 25, 694 | "textAlign": "left", 695 | "verticalAlign": "top", 696 | "containerId": null, 697 | "originalText": "1" 698 | } 699 | ], 700 | "appState": { 701 | "gridSize": null, 702 | "viewBackgroundColor": "#ffffff" 703 | }, 704 | "files": {} 705 | } -------------------------------------------------------------------------------- /diagrams/pacelc.excalidraw: -------------------------------------------------------------------------------- 1 | { 2 | "type": "excalidraw", 3 | "version": 2, 4 | "source": "https://excalidraw.com", 5 | "elements": [ 6 | { 7 | "type": "ellipse", 8 | "version": 1101, 9 | "versionNonce": 1346893046, 10 | "isDeleted": false, 11 | "id": "5VsvpjPMq1jczx_vZj4SM", 12 | "fillStyle": "hachure", 13 | "strokeWidth": 1, 14 | "strokeStyle": "solid", 15 | "roughness": 1, 16 | "opacity": 100, 17 | "angle": 6.280842810089523, 18 | "x": 679.2596347929536, 19 | "y": 232.17688297037813, 20 | "strokeColor": "#e67700", 21 | "backgroundColor": "#fab005", 22 | "width": 126.42288593117817, 23 | "height": 122.13736437418933, 24 | "seed": 2100219242, 25 | "groupIds": [], 26 | "strokeSharpness": "sharp", 27 | "boundElements": [ 28 | { 29 | "id": "QRXHVmhJebESbadFbkWrC", 30 | "type": "arrow" 31 | }, 32 | { 33 | "id": "F6DF8rPNAxTTEkOYR-lCf", 34 | "type": "arrow" 35 | }, 36 | { 37 | "type": "text", 38 | "id": "CT4I7XgNb6VBeho76zCK7" 39 | } 40 | ], 41 | "updated": 1654506367233, 42 | "link": null, 43 | "locked": false 44 | }, 45 | { 46 | "type": "ellipse", 47 | "version": 1116, 48 | "versionNonce": 410867830, 49 | "isDeleted": false, 50 | "id": "8BUKwCHMaNQKsNxlVla3I", 51 | "fillStyle": "hachure", 52 | "strokeWidth": 1, 53 | "strokeStyle": "solid", 54 | "roughness": 1, 55 | "opacity": 100, 56 | "angle": 6.280842810089523, 57 | "x": 334.2703421365099, 58 | "y": 647.2209081958163, 59 | "strokeColor": "#5c940d", 60 | "backgroundColor": "#82c91e", 61 | "width": 127.10983765481943, 62 | "height": 122.13736437418933, 63 | "seed": 192281322, 64 | "groupIds": [], 65 | "strokeSharpness": "sharp", 66 | "boundElements": [ 67 | { 68 | "id": "nLFwTYB0m0IJBMIQEBCF1", 69 | "type": "arrow" 70 | }, 71 | { 72 | "type": "text", 73 | "id": "-I5Eol4zorS0xVXNn3uYI" 74 | } 75 | ], 76 | "updated": 1654506309054, 77 | "link": null, 78 | "locked": false 79 | }, 80 | { 81 | "type": "ellipse", 82 | "version": 1223, 83 | "versionNonce": 989532650, 84 | "isDeleted": false, 85 | "id": "wYAU58RYr5HyoonRzqfVL", 86 | "fillStyle": "hachure", 87 | "strokeWidth": 1, 88 | "strokeStyle": "solid", 89 | "roughness": 1, 90 | "opacity": 100, 91 | "angle": 6.280842810089523, 92 | "x": 568.5854303124892, 93 | "y": 647.2209081958163, 94 | "strokeColor": "#0b7285", 95 | "backgroundColor": "#15aabf", 96 | "width": 126.42288593117817, 97 | "height": 122.13736437418933, 98 | "seed": 1368067498, 99 | "groupIds": [], 100 | "strokeSharpness": "sharp", 101 | "boundElements": [ 102 | { 103 | "id": "K9iSWN-4sms2nA3Aw3E1g", 104 | "type": "arrow" 105 | }, 106 | { 107 | "type": "text", 108 | "id": "WNe9kXOQX7B-jyfUrCUe8" 109 | } 110 | ], 111 | "updated": 1654506309054, 112 | "link": null, 113 | "locked": false 114 | }, 115 | { 116 | "type": "arrow", 117 | "version": 1427, 118 | "versionNonce": 662680490, 119 | "isDeleted": false, 120 | "id": "nLFwTYB0m0IJBMIQEBCF1", 121 | "fillStyle": "solid", 122 | "strokeWidth": 1, 123 | "strokeStyle": "solid", 124 | "roughness": 1, 125 | "opacity": 50, 126 | "angle": 0, 127 | "x": 481.4005776507411, 128 | "y": 550.1244904435537, 129 | "strokeColor": "#000000", 130 | "backgroundColor": "transparent", 131 | "width": 55.173200010633934, 132 | "height": 93.86337968666703, 133 | "seed": 552585322, 134 | "groupIds": [], 135 | "strokeSharpness": "round", 136 | "boundElements": [], 137 | "updated": 1654506395101, 138 | "link": null, 139 | "locked": false, 140 | "startBinding": { 141 | "elementId": "HIhmIjc2JdWvr-qp2qm72", 142 | "focus": 0.0918526735524839, 143 | "gap": 9.854741847098126 144 | }, 145 | "endBinding": { 146 | "elementId": "8BUKwCHMaNQKsNxlVla3I", 147 | "focus": -0.12871883985153704, 148 | "gap": 8.833765865574989 149 | }, 150 | "lastCommittedPoint": null, 151 | "startArrowhead": null, 152 | "endArrowhead": "triangle", 153 | "points": [ 154 | [ 155 | 0, 156 | 0 157 | ], 158 | [ 159 | -55.173200010633934, 160 | 93.86337968666703 161 | ] 162 | ] 163 | }, 164 | { 165 | "type": "arrow", 166 | "version": 1506, 167 | "versionNonce": 907615274, 168 | "isDeleted": false, 169 | "id": "K9iSWN-4sms2nA3Aw3E1g", 170 | "fillStyle": "solid", 171 | "strokeWidth": 1, 172 | "strokeStyle": "solid", 173 | "roughness": 1, 174 | "opacity": 50, 175 | "angle": 0, 176 | "x": 556.3546816920614, 177 | "y": 550.1565913125436, 178 | "strokeColor": "#000000", 179 | "backgroundColor": "transparent", 180 | "width": 53.19708811271937, 181 | "height": 89.87632389015084, 182 | "seed": 6401782, 183 | "groupIds": [], 184 | "strokeSharpness": "round", 185 | "boundElements": [], 186 | "updated": 1654506416878, 187 | "link": null, 188 | "locked": false, 189 | "startBinding": { 190 | "elementId": "HIhmIjc2JdWvr-qp2qm72", 191 | "focus": -0.052862966516487024, 192 | "gap": 9.88684271608804 193 | }, 194 | "endBinding": { 195 | "elementId": "wYAU58RYr5HyoonRzqfVL", 196 | "focus": 0.249315093945488, 197 | "gap": 10.526161362808296 198 | }, 199 | "lastCommittedPoint": null, 200 | "startArrowhead": null, 201 | "endArrowhead": "triangle", 202 | "points": [ 203 | [ 204 | 0, 205 | 0 206 | ], 207 | [ 208 | 53.19708811271937, 209 | 89.87632389015084 210 | ] 211 | ] 212 | }, 213 | { 214 | "type": "ellipse", 215 | "version": 1239, 216 | "versionNonce": 1399249334, 217 | "isDeleted": false, 218 | "id": "fe9XacNsLe4J9CqBHdp06", 219 | "fillStyle": "hachure", 220 | "strokeWidth": 1, 221 | "strokeStyle": "solid", 222 | "roughness": 1, 223 | "opacity": 100, 224 | "angle": 6.280842810089523, 225 | "x": 801.1533488548976, 226 | "y": 647.2170019458163, 227 | "strokeColor": "#e67700", 228 | "backgroundColor": "#fd7e14", 229 | "width": 126.42288593117817, 230 | "height": 122.13736437418933, 231 | "seed": 1242163370, 232 | "groupIds": [], 233 | "strokeSharpness": "sharp", 234 | "boundElements": [ 235 | { 236 | "id": "LGyKQ4MpsE0JWGWBznyMm", 237 | "type": "arrow" 238 | }, 239 | { 240 | "type": "text", 241 | "id": "gH2jYY6JeUFRge9gJP3WS" 242 | } 243 | ], 244 | "updated": 1654506309054, 245 | "link": null, 246 | "locked": false 247 | }, 248 | { 249 | "type": "ellipse", 250 | "version": 1321, 251 | "versionNonce": 508904618, 252 | "isDeleted": false, 253 | "id": "RNYYpL37799t01eWE-xr7", 254 | "fillStyle": "hachure", 255 | "strokeWidth": 1, 256 | "strokeStyle": "solid", 257 | "roughness": 1, 258 | "opacity": 100, 259 | "angle": 6.280842810089523, 260 | "x": 1036.4631155976576, 261 | "y": 647.2209081958172, 262 | "strokeColor": "#0b7285", 263 | "backgroundColor": "#15aabf", 264 | "width": 126.42288593117817, 265 | "height": 122.13736437418933, 266 | "seed": 2061189994, 267 | "groupIds": [], 268 | "strokeSharpness": "sharp", 269 | "boundElements": [ 270 | { 271 | "id": "pE_x9qDSNdC7j63dfk2B9", 272 | "type": "arrow" 273 | }, 274 | { 275 | "type": "text", 276 | "id": "6_c_QNZyjuuqft3lbKFtf" 277 | } 278 | ], 279 | "updated": 1654506309054, 280 | "link": null, 281 | "locked": false 282 | }, 283 | { 284 | "type": "arrow", 285 | "version": 1832, 286 | "versionNonce": 1314386666, 287 | "isDeleted": false, 288 | "id": "LGyKQ4MpsE0JWGWBznyMm", 289 | "fillStyle": "solid", 290 | "strokeWidth": 1, 291 | "strokeStyle": "solid", 292 | "roughness": 1, 293 | "opacity": 50, 294 | "angle": 0, 295 | "x": 937.5913630008025, 296 | "y": 553.2511097214522, 297 | "strokeColor": "#000000", 298 | "backgroundColor": "transparent", 299 | "width": 49.68571998854577, 300 | "height": 91.33310163808756, 301 | "seed": 572030902, 302 | "groupIds": [], 303 | "strokeSharpness": "round", 304 | "boundElements": [], 305 | "updated": 1654506419195, 306 | "link": null, 307 | "locked": false, 308 | "startBinding": { 309 | "elementId": "1zA948_KEVToPzRrfGeZk", 310 | "focus": -0.0410194399061079, 311 | "gap": 9.69788026879678 312 | }, 313 | "endBinding": { 314 | "elementId": "fe9XacNsLe4J9CqBHdp06", 315 | "focus": -0.15563464440124938, 316 | "gap": 6.5927952381694865 317 | }, 318 | "lastCommittedPoint": null, 319 | "startArrowhead": null, 320 | "endArrowhead": "triangle", 321 | "points": [ 322 | [ 323 | 0, 324 | 0 325 | ], 326 | [ 327 | -49.68571998854577, 328 | 91.33310163808756 329 | ] 330 | ] 331 | }, 332 | { 333 | "type": "arrow", 334 | "version": 1840, 335 | "versionNonce": 2109932074, 336 | "isDeleted": false, 337 | "id": "pE_x9qDSNdC7j63dfk2B9", 338 | "fillStyle": "solid", 339 | "strokeWidth": 1, 340 | "strokeStyle": "solid", 341 | "roughness": 1, 342 | "opacity": 50, 343 | "angle": 0, 344 | "x": 1017.9586069324517, 345 | "y": 554.0880280837839, 346 | "strokeColor": "#000000", 347 | "backgroundColor": "transparent", 348 | "width": 57.39610992918006, 349 | "height": 93.18234110403876, 350 | "seed": 352121066, 351 | "groupIds": [], 352 | "strokeSharpness": "round", 353 | "boundElements": [], 354 | "updated": 1654506343705, 355 | "link": null, 356 | "locked": false, 357 | "startBinding": { 358 | "elementId": "1zA948_KEVToPzRrfGeZk", 359 | "focus": -0.2383666464371663, 360 | "gap": 10.534798631128524 361 | }, 362 | "endBinding": { 363 | "elementId": "RNYYpL37799t01eWE-xr7", 364 | "focus": 0.1803270851983129, 365 | "gap": 4.339814051030025 366 | }, 367 | "lastCommittedPoint": null, 368 | "startArrowhead": null, 369 | "endArrowhead": "triangle", 370 | "points": [ 371 | [ 372 | 0, 373 | 0 374 | ], 375 | [ 376 | 57.39610992918006, 377 | 93.18234110403876 378 | ] 379 | ] 380 | }, 381 | { 382 | "type": "arrow", 383 | "version": 1528, 384 | "versionNonce": 360459702, 385 | "isDeleted": false, 386 | "id": "QRXHVmhJebESbadFbkWrC", 387 | "fillStyle": "solid", 388 | "strokeWidth": 1, 389 | "strokeStyle": "solid", 390 | "roughness": 1, 391 | "opacity": 50, 392 | "angle": 0, 393 | "x": 680.7686920620215, 394 | "y": 327.36010256742827, 395 | "strokeColor": "#000000", 396 | "backgroundColor": "transparent", 397 | "width": 163.3960314036426, 398 | "height": 117.74634895773994, 399 | "seed": 985875370, 400 | "groupIds": [], 401 | "strokeSharpness": "round", 402 | "boundElements": [], 403 | "updated": 1654506398696, 404 | "link": null, 405 | "locked": false, 406 | "startBinding": { 407 | "elementId": "5VsvpjPMq1jczx_vZj4SM", 408 | "focus": 0.11631104329345163, 409 | "gap": 7.80898465127914 410 | }, 411 | "endBinding": { 412 | "elementId": "HIhmIjc2JdWvr-qp2qm72", 413 | "focus": -0.5752706565606841, 414 | "gap": 13.004097896540713 415 | }, 416 | "lastCommittedPoint": null, 417 | "startArrowhead": null, 418 | "endArrowhead": "triangle", 419 | "points": [ 420 | [ 421 | 0, 422 | 0 423 | ], 424 | [ 425 | -163.3960314036426, 426 | 117.74634895773994 427 | ] 428 | ] 429 | }, 430 | { 431 | "type": "arrow", 432 | "version": 1553, 433 | "versionNonce": 1447711158, 434 | "isDeleted": false, 435 | "id": "F6DF8rPNAxTTEkOYR-lCf", 436 | "fillStyle": "solid", 437 | "strokeWidth": 1, 438 | "strokeStyle": "solid", 439 | "roughness": 1, 440 | "opacity": 50, 441 | "angle": 0, 442 | "x": 803.1953067673214, 443 | "y": 329.7925380912111, 444 | "strokeColor": "#000000", 445 | "backgroundColor": "transparent", 446 | "width": 155.18141429277944, 447 | "height": 118.94248795025368, 448 | "seed": 193731050, 449 | "groupIds": [], 450 | "strokeSharpness": "round", 451 | "boundElements": [], 452 | "updated": 1654506492539, 453 | "link": null, 454 | "locked": false, 455 | "startBinding": { 456 | "elementId": "5VsvpjPMq1jczx_vZj4SM", 457 | "focus": -0.08833026424018599, 458 | "gap": 8.256115651059204 459 | }, 460 | "endBinding": { 461 | "elementId": "1zA948_KEVToPzRrfGeZk", 462 | "focus": 0.505676493760806, 463 | "gap": 12.659004236443991 464 | }, 465 | "lastCommittedPoint": null, 466 | "startArrowhead": null, 467 | "endArrowhead": "triangle", 468 | "points": [ 469 | [ 470 | 0, 471 | 0 472 | ], 473 | [ 474 | 155.18141429277944, 475 | 118.94248795025368 476 | ] 477 | ] 478 | }, 479 | { 480 | "type": "rectangle", 481 | "version": 325, 482 | "versionNonce": 1255295686, 483 | "isDeleted": false, 484 | "id": "HIhmIjc2JdWvr-qp2qm72", 485 | "fillStyle": "hachure", 486 | "strokeWidth": 1, 487 | "strokeStyle": "solid", 488 | "roughness": 1, 489 | "opacity": 50, 490 | "angle": 0, 491 | "x": 441.3488513841761, 492 | "y": 458.1105494217089, 493 | "strokeColor": "#82c91e", 494 | "backgroundColor": "transparent", 495 | "width": 159, 496 | "height": 82.15919917474658, 497 | "seed": 1020402794, 498 | "groupIds": [], 499 | "strokeSharpness": "round", 500 | "boundElements": [ 501 | { 502 | "id": "nLFwTYB0m0IJBMIQEBCF1", 503 | "type": "arrow" 504 | }, 505 | { 506 | "id": "K9iSWN-4sms2nA3Aw3E1g", 507 | "type": "arrow" 508 | }, 509 | { 510 | "id": "QRXHVmhJebESbadFbkWrC", 511 | "type": "arrow" 512 | }, 513 | { 514 | "type": "text", 515 | "id": "fD8IDaAVxXT4EJZWU0JJT" 516 | } 517 | ], 518 | "updated": 1654506635701, 519 | "link": null, 520 | "locked": false 521 | }, 522 | { 523 | "type": "rectangle", 524 | "version": 504, 525 | "versionNonce": 964987226, 526 | "isDeleted": false, 527 | "id": "1zA948_KEVToPzRrfGeZk", 528 | "fillStyle": "hachure", 529 | "strokeWidth": 1, 530 | "strokeStyle": "solid", 531 | "roughness": 1, 532 | "opacity": 50, 533 | "angle": 0, 534 | "x": 881.6848891010113, 535 | "y": 461.39403027790877, 536 | "strokeColor": "#fa5252", 537 | "backgroundColor": "transparent", 538 | "width": 159, 539 | "height": 82.15919917474658, 540 | "seed": 990456118, 541 | "groupIds": [], 542 | "strokeSharpness": "round", 543 | "boundElements": [ 544 | { 545 | "id": "nLFwTYB0m0IJBMIQEBCF1", 546 | "type": "arrow" 547 | }, 548 | { 549 | "id": "K9iSWN-4sms2nA3Aw3E1g", 550 | "type": "arrow" 551 | }, 552 | { 553 | "id": "QRXHVmhJebESbadFbkWrC", 554 | "type": "arrow" 555 | }, 556 | { 557 | "id": "LGyKQ4MpsE0JWGWBznyMm", 558 | "type": "arrow" 559 | }, 560 | { 561 | "id": "pE_x9qDSNdC7j63dfk2B9", 562 | "type": "arrow" 563 | }, 564 | { 565 | "id": "F6DF8rPNAxTTEkOYR-lCf", 566 | "type": "arrow" 567 | }, 568 | { 569 | "type": "text", 570 | "id": "Oieb2JKPLJqs0iYEtnpeS" 571 | } 572 | ], 573 | "updated": 1654506640200, 574 | "link": null, 575 | "locked": false 576 | }, 577 | { 578 | "type": "text", 579 | "version": 155, 580 | "versionNonce": 2089246954, 581 | "isDeleted": false, 582 | "id": "fD8IDaAVxXT4EJZWU0JJT", 583 | "fillStyle": "hachure", 584 | "strokeWidth": 1, 585 | "strokeStyle": "solid", 586 | "roughness": 1, 587 | "opacity": 100, 588 | "angle": 0, 589 | "x": 446.3488513841761, 590 | "y": 486.69014900908223, 591 | "strokeColor": "#82c91e", 592 | "backgroundColor": "transparent", 593 | "width": 149, 594 | "height": 25, 595 | "seed": 1162207542, 596 | "groupIds": [], 597 | "strokeSharpness": "sharp", 598 | "boundElements": [], 599 | "updated": 1654506395101, 600 | "link": null, 601 | "locked": false, 602 | "fontSize": 20, 603 | "fontFamily": 1, 604 | "text": "Yes", 605 | "baseline": 18, 606 | "textAlign": "center", 607 | "verticalAlign": "middle", 608 | "containerId": "HIhmIjc2JdWvr-qp2qm72", 609 | "originalText": "Yes" 610 | }, 611 | { 612 | "type": "text", 613 | "version": 140, 614 | "versionNonce": 447460650, 615 | "isDeleted": false, 616 | "id": "Oieb2JKPLJqs0iYEtnpeS", 617 | "fillStyle": "hachure", 618 | "strokeWidth": 1, 619 | "strokeStyle": "solid", 620 | "roughness": 1, 621 | "opacity": 100, 622 | "angle": 0, 623 | "x": 886.6848891010113, 624 | "y": 489.9736298652821, 625 | "strokeColor": "#fa5252", 626 | "backgroundColor": "transparent", 627 | "width": 149, 628 | "height": 25, 629 | "seed": 1084254902, 630 | "groupIds": [], 631 | "strokeSharpness": "sharp", 632 | "boundElements": [], 633 | "updated": 1654506301676, 634 | "link": null, 635 | "locked": false, 636 | "fontSize": 20, 637 | "fontFamily": 1, 638 | "text": "No", 639 | "baseline": 18, 640 | "textAlign": "center", 641 | "verticalAlign": "middle", 642 | "containerId": "1zA948_KEVToPzRrfGeZk", 643 | "originalText": "No" 644 | }, 645 | { 646 | "type": "text", 647 | "version": 153, 648 | "versionNonce": 269366006, 649 | "isDeleted": false, 650 | "id": "-I5Eol4zorS0xVXNn3uYI", 651 | "fillStyle": "hachure", 652 | "strokeWidth": 1, 653 | "strokeStyle": "solid", 654 | "roughness": 1, 655 | "opacity": 100, 656 | "angle": 0, 657 | "x": 339.2703421365099, 658 | "y": 695.7895903829109, 659 | "strokeColor": "#000000", 660 | "backgroundColor": "transparent", 661 | "width": 117, 662 | "height": 25, 663 | "seed": 1420631722, 664 | "groupIds": [], 665 | "strokeSharpness": "sharp", 666 | "boundElements": [], 667 | "updated": 1654506309054, 668 | "link": null, 669 | "locked": false, 670 | "fontSize": 20, 671 | "fontFamily": 1, 672 | "text": "Availability", 673 | "baseline": 18, 674 | "textAlign": "center", 675 | "verticalAlign": "middle", 676 | "containerId": "8BUKwCHMaNQKsNxlVla3I", 677 | "originalText": "Availability" 678 | }, 679 | { 680 | "type": "text", 681 | "version": 36, 682 | "versionNonce": 1700470634, 683 | "isDeleted": false, 684 | "id": "WNe9kXOQX7B-jyfUrCUe8", 685 | "fillStyle": "hachure", 686 | "strokeWidth": 1, 687 | "strokeStyle": "solid", 688 | "roughness": 1, 689 | "opacity": 100, 690 | "angle": 0, 691 | "x": 573.5854303124892, 692 | "y": 695.7895903829109, 693 | "strokeColor": "#000000", 694 | "backgroundColor": "transparent", 695 | "width": 116, 696 | "height": 25, 697 | "seed": 1907913398, 698 | "groupIds": [], 699 | "strokeSharpness": "sharp", 700 | "boundElements": [], 701 | "updated": 1654506309054, 702 | "link": null, 703 | "locked": false, 704 | "fontSize": 20, 705 | "fontFamily": 1, 706 | "text": "Consistency", 707 | "baseline": 18, 708 | "textAlign": "center", 709 | "verticalAlign": "middle", 710 | "containerId": "wYAU58RYr5HyoonRzqfVL", 711 | "originalText": "Consistency" 712 | }, 713 | { 714 | "type": "text", 715 | "version": 38, 716 | "versionNonce": 150496310, 717 | "isDeleted": false, 718 | "id": "gH2jYY6JeUFRge9gJP3WS", 719 | "fillStyle": "hachure", 720 | "strokeWidth": 1, 721 | "strokeStyle": "solid", 722 | "roughness": 1, 723 | "opacity": 100, 724 | "angle": 0, 725 | "x": 806.1533488548976, 726 | "y": 695.7856841329109, 727 | "strokeColor": "#000000", 728 | "backgroundColor": "transparent", 729 | "width": 116, 730 | "height": 25, 731 | "seed": 832481078, 732 | "groupIds": [], 733 | "strokeSharpness": "sharp", 734 | "boundElements": [], 735 | "updated": 1654506309054, 736 | "link": null, 737 | "locked": false, 738 | "fontSize": 20, 739 | "fontFamily": 1, 740 | "text": "Latency", 741 | "baseline": 18, 742 | "textAlign": "center", 743 | "verticalAlign": "middle", 744 | "containerId": "fe9XacNsLe4J9CqBHdp06", 745 | "originalText": "Latency" 746 | }, 747 | { 748 | "type": "text", 749 | "version": 36, 750 | "versionNonce": 1817682474, 751 | "isDeleted": false, 752 | "id": "6_c_QNZyjuuqft3lbKFtf", 753 | "fillStyle": "hachure", 754 | "strokeWidth": 1, 755 | "strokeStyle": "solid", 756 | "roughness": 1, 757 | "opacity": 100, 758 | "angle": 0, 759 | "x": 1041.4631155976576, 760 | "y": 695.7895903829118, 761 | "strokeColor": "#000000", 762 | "backgroundColor": "transparent", 763 | "width": 116, 764 | "height": 25, 765 | "seed": 733323882, 766 | "groupIds": [], 767 | "strokeSharpness": "sharp", 768 | "boundElements": [], 769 | "updated": 1654506309054, 770 | "link": null, 771 | "locked": false, 772 | "fontSize": 20, 773 | "fontFamily": 1, 774 | "text": "Consistency", 775 | "baseline": 18, 776 | "textAlign": "center", 777 | "verticalAlign": "middle", 778 | "containerId": "RNYYpL37799t01eWE-xr7", 779 | "originalText": "Consistency" 780 | }, 781 | { 782 | "type": "text", 783 | "version": 33, 784 | "versionNonce": 204581610, 785 | "isDeleted": false, 786 | "id": "CT4I7XgNb6VBeho76zCK7", 787 | "fillStyle": "hachure", 788 | "strokeWidth": 1, 789 | "strokeStyle": "solid", 790 | "roughness": 1, 791 | "opacity": 100, 792 | "angle": 0, 793 | "x": 684.2596347929536, 794 | "y": 280.7455651574728, 795 | "strokeColor": "#000000", 796 | "backgroundColor": "transparent", 797 | "width": 116, 798 | "height": 25, 799 | "seed": 822453366, 800 | "groupIds": [], 801 | "strokeSharpness": "sharp", 802 | "boundElements": [], 803 | "updated": 1654506367234, 804 | "link": null, 805 | "locked": false, 806 | "fontSize": 20, 807 | "fontFamily": 1, 808 | "text": "Partition", 809 | "baseline": 18, 810 | "textAlign": "center", 811 | "verticalAlign": "middle", 812 | "containerId": "5VsvpjPMq1jczx_vZj4SM", 813 | "originalText": "Partition" 814 | } 815 | ], 816 | "appState": { 817 | "gridSize": null, 818 | "viewBackgroundColor": "#ffffff" 819 | }, 820 | "files": {} 821 | } -------------------------------------------------------------------------------- /diagrams/pubsub.excalidraw: -------------------------------------------------------------------------------- 1 | { 2 | "type": "excalidraw", 3 | "version": 2, 4 | "source": "https://excalidraw.com", 5 | "elements": [ 6 | { 7 | "type": "ellipse", 8 | "version": 478, 9 | "versionNonce": 519425317, 10 | "isDeleted": false, 11 | "id": "SHfja2dEWlBM6ywY11Q4D", 12 | "fillStyle": "hachure", 13 | "strokeWidth": 1, 14 | "strokeStyle": "solid", 15 | "roughness": 1, 16 | "opacity": 100, 17 | "angle": 0, 18 | "x": 141.55899598924725, 19 | "y": 396.1851231364917, 20 | "strokeColor": "#c92a2a", 21 | "backgroundColor": "#fa5252", 22 | "width": 151.44994056587063, 23 | "height": 151.44994056587063, 24 | "seed": 308384421, 25 | "groupIds": [], 26 | "strokeSharpness": "sharp", 27 | "boundElements": [ 28 | { 29 | "type": "text", 30 | "id": "xFNzLMVZE8x1K3vPqbGWA" 31 | }, 32 | { 33 | "id": "1JRoA2wTzjGyN_057vaWf", 34 | "type": "arrow" 35 | } 36 | ], 37 | "updated": 1653739507189, 38 | "link": null, 39 | "locked": false 40 | }, 41 | { 42 | "type": "text", 43 | "version": 278, 44 | "versionNonce": 1307886507, 45 | "isDeleted": false, 46 | "id": "xFNzLMVZE8x1K3vPqbGWA", 47 | "fillStyle": "hachure", 48 | "strokeWidth": 1, 49 | "strokeStyle": "solid", 50 | "roughness": 1, 51 | "opacity": 100, 52 | "angle": 0, 53 | "x": 146.55899598924725, 54 | "y": 459.410093419427, 55 | "strokeColor": "#000000", 56 | "backgroundColor": "#fab005", 57 | "width": 141, 58 | "height": 25, 59 | "seed": 886835909, 60 | "groupIds": [], 61 | "strokeSharpness": "sharp", 62 | "boundElements": [], 63 | "updated": 1653739507189, 64 | "link": null, 65 | "locked": false, 66 | "fontSize": 20, 67 | "fontFamily": 1, 68 | "text": "Publisher", 69 | "baseline": 18, 70 | "textAlign": "center", 71 | "verticalAlign": "middle", 72 | "containerId": "SHfja2dEWlBM6ywY11Q4D", 73 | "originalText": "Publisher" 74 | }, 75 | { 76 | "type": "ellipse", 77 | "version": 894, 78 | "versionNonce": 78445445, 79 | "isDeleted": false, 80 | "id": "HM3YfZGzPYpeikGPjWS-x", 81 | "fillStyle": "hachure", 82 | "strokeWidth": 1, 83 | "strokeStyle": "solid", 84 | "roughness": 1, 85 | "opacity": 100, 86 | "angle": 0, 87 | "x": 1010.0716646890753, 88 | "y": 185.85610012565593, 89 | "strokeColor": "#5c940d", 90 | "backgroundColor": "#82c91e", 91 | "width": 151.44994056587063, 92 | "height": 151.44994056587063, 93 | "seed": 1897094469, 94 | "groupIds": [], 95 | "strokeSharpness": "sharp", 96 | "boundElements": [ 97 | { 98 | "id": "AgB7Ytqn3KwHTzkzMFw_q", 99 | "type": "text" 100 | }, 101 | { 102 | "type": "text", 103 | "id": "AgB7Ytqn3KwHTzkzMFw_q" 104 | }, 105 | { 106 | "id": "ILe4_nojxKkH0BuVpcc2S", 107 | "type": "arrow" 108 | } 109 | ], 110 | "updated": 1653739521272, 111 | "link": null, 112 | "locked": false 113 | }, 114 | { 115 | "type": "text", 116 | "version": 710, 117 | "versionNonce": 1068009963, 118 | "isDeleted": false, 119 | "id": "AgB7Ytqn3KwHTzkzMFw_q", 120 | "fillStyle": "hachure", 121 | "strokeWidth": 1, 122 | "strokeStyle": "solid", 123 | "roughness": 1, 124 | "opacity": 100, 125 | "angle": 0, 126 | "x": 1015.0716646890753, 127 | "y": 249.08107040859124, 128 | "strokeColor": "#000000", 129 | "backgroundColor": "#fab005", 130 | "width": 141, 131 | "height": 25, 132 | "seed": 1649395083, 133 | "groupIds": [], 134 | "strokeSharpness": "sharp", 135 | "boundElements": [], 136 | "updated": 1653739521273, 137 | "link": null, 138 | "locked": false, 139 | "fontSize": 20, 140 | "fontFamily": 1, 141 | "text": "Subscriber", 142 | "baseline": 18, 143 | "textAlign": "center", 144 | "verticalAlign": "middle", 145 | "containerId": "HM3YfZGzPYpeikGPjWS-x", 146 | "originalText": "Subscriber" 147 | }, 148 | { 149 | "type": "arrow", 150 | "version": 581, 151 | "versionNonce": 44468197, 152 | "isDeleted": false, 153 | "id": "1JRoA2wTzjGyN_057vaWf", 154 | "fillStyle": "hachure", 155 | "strokeWidth": 1, 156 | "strokeStyle": "dashed", 157 | "roughness": 1, 158 | "opacity": 50, 159 | "angle": 0, 160 | "x": 309.46629455775155, 161 | "y": 474.1832120838718, 162 | "strokeColor": "#000000", 163 | "backgroundColor": "#15aabf", 164 | "width": 258.584657243033, 165 | "height": 1.2516074779808832, 166 | "seed": 1694419243, 167 | "groupIds": [], 168 | "strokeSharpness": "round", 169 | "boundElements": [], 170 | "updated": 1653739507189, 171 | "link": null, 172 | "locked": false, 173 | "startBinding": { 174 | "elementId": "SHfja2dEWlBM6ywY11Q4D", 175 | "focus": 0.03588559056784105, 176 | "gap": 16.485380093858424 177 | }, 178 | "endBinding": { 179 | "elementId": "qcz9Jx50f22yMLg4f3Y2K", 180 | "focus": -0.006811677937682942, 181 | "gap": 5.680216241894719 182 | }, 183 | "lastCommittedPoint": null, 184 | "startArrowhead": null, 185 | "endArrowhead": "triangle", 186 | "points": [ 187 | [ 188 | 0, 189 | 0 190 | ], 191 | [ 192 | 258.584657243033, 193 | -1.2516074779808832 194 | ] 195 | ] 196 | }, 197 | { 198 | "type": "arrow", 199 | "version": 1295, 200 | "versionNonce": 585974501, 201 | "isDeleted": false, 202 | "id": "ILe4_nojxKkH0BuVpcc2S", 203 | "fillStyle": "hachure", 204 | "strokeWidth": 1, 205 | "strokeStyle": "dashed", 206 | "roughness": 1, 207 | "opacity": 50, 208 | "angle": 0, 209 | "x": 713.4239743251011, 210 | "y": 411.2003416461581, 211 | "strokeColor": "#000000", 212 | "backgroundColor": "#15aabf", 213 | "width": 289.3267905058161, 214 | "height": 113.49258652867337, 215 | "seed": 857042789, 216 | "groupIds": [], 217 | "strokeSharpness": "round", 218 | "boundElements": [], 219 | "updated": 1653739521273, 220 | "link": null, 221 | "locked": false, 222 | "startBinding": { 223 | "elementId": "qcz9Jx50f22yMLg4f3Y2K", 224 | "focus": -0.46748447231729906, 225 | "gap": 18.115572051172954 226 | }, 227 | "endBinding": { 228 | "elementId": "HM3YfZGzPYpeikGPjWS-x", 229 | "focus": -0.04365181525947846, 230 | "gap": 14.838564848745122 231 | }, 232 | "lastCommittedPoint": null, 233 | "startArrowhead": null, 234 | "endArrowhead": "triangle", 235 | "points": [ 236 | [ 237 | 0, 238 | 0 239 | ], 240 | [ 241 | 289.3267905058161, 242 | -113.49258652867337 243 | ] 244 | ] 245 | }, 246 | { 247 | "type": "ellipse", 248 | "version": 1054, 249 | "versionNonce": 673569221, 250 | "isDeleted": false, 251 | "id": "_PObjGS3yy4UNPES19wsa", 252 | "fillStyle": "hachure", 253 | "strokeWidth": 1, 254 | "strokeStyle": "solid", 255 | "roughness": 1, 256 | "opacity": 100, 257 | "angle": 0, 258 | "x": 1007.8953945676533, 259 | "y": 607.6158811385992, 260 | "strokeColor": "#5c940d", 261 | "backgroundColor": "#82c91e", 262 | "width": 151.44994056587063, 263 | "height": 151.44994056587063, 264 | "seed": 230597707, 265 | "groupIds": [], 266 | "strokeSharpness": "sharp", 267 | "boundElements": [ 268 | { 269 | "id": "FzkD74F2H-B0ZktrokjSe", 270 | "type": "text" 271 | }, 272 | { 273 | "id": "FzkD74F2H-B0ZktrokjSe", 274 | "type": "text" 275 | }, 276 | { 277 | "id": "0GqxFo_G-Z2te1YSDjkS4", 278 | "type": "arrow" 279 | }, 280 | { 281 | "type": "text", 282 | "id": "FzkD74F2H-B0ZktrokjSe" 283 | } 284 | ], 285 | "updated": 1653739539783, 286 | "link": null, 287 | "locked": false 288 | }, 289 | { 290 | "type": "text", 291 | "version": 871, 292 | "versionNonce": 75036587, 293 | "isDeleted": false, 294 | "id": "FzkD74F2H-B0ZktrokjSe", 295 | "fillStyle": "hachure", 296 | "strokeWidth": 1, 297 | "strokeStyle": "solid", 298 | "roughness": 1, 299 | "opacity": 100, 300 | "angle": 0, 301 | "x": 1012.8953945676533, 302 | "y": 670.8408514215345, 303 | "strokeColor": "#000000", 304 | "backgroundColor": "#fab005", 305 | "width": 141, 306 | "height": 25, 307 | "seed": 774167013, 308 | "groupIds": [], 309 | "strokeSharpness": "sharp", 310 | "boundElements": [], 311 | "updated": 1653739539783, 312 | "link": null, 313 | "locked": false, 314 | "fontSize": 20, 315 | "fontFamily": 1, 316 | "text": "Subscriber", 317 | "baseline": 18, 318 | "textAlign": "center", 319 | "verticalAlign": "middle", 320 | "containerId": "_PObjGS3yy4UNPES19wsa", 321 | "originalText": "Subscriber" 322 | }, 323 | { 324 | "type": "arrow", 325 | "version": 1557, 326 | "versionNonce": 405821733, 327 | "isDeleted": false, 328 | "id": "0GqxFo_G-Z2te1YSDjkS4", 329 | "fillStyle": "hachure", 330 | "strokeWidth": 1, 331 | "strokeStyle": "dashed", 332 | "roughness": 1, 333 | "opacity": 50, 334 | "angle": 0, 335 | "x": 703.761524382557, 336 | "y": 537.5001677454304, 337 | "strokeColor": "#000000", 338 | "backgroundColor": "#15aabf", 339 | "width": 294.4253074300009, 340 | "height": 115.79296615568671, 341 | "seed": 1452925675, 342 | "groupIds": [], 343 | "strokeSharpness": "round", 344 | "boundElements": [], 345 | "updated": 1653739539783, 346 | "link": null, 347 | "locked": false, 348 | "startBinding": { 349 | "elementId": "qcz9Jx50f22yMLg4f3Y2K", 350 | "focus": 0.5650552109406348, 351 | "gap": 14.768343449957548 352 | }, 353 | "endBinding": { 354 | "elementId": "_PObjGS3yy4UNPES19wsa", 355 | "focus": -0.04365181525947962, 356 | "gap": 14.838564848744781 357 | }, 358 | "lastCommittedPoint": null, 359 | "startArrowhead": null, 360 | "endArrowhead": "triangle", 361 | "points": [ 362 | [ 363 | 0, 364 | 0 365 | ], 366 | [ 367 | 294.4253074300009, 368 | 115.79296615568671 369 | ] 370 | ] 371 | }, 372 | { 373 | "id": "qcz9Jx50f22yMLg4f3Y2K", 374 | "type": "diamond", 375 | "x": 573.6340792337131, 376 | "y": 384.4578060031546, 377 | "width": 175, 378 | "height": 174.85614352693725, 379 | "angle": 0, 380 | "strokeColor": "#e67700", 381 | "backgroundColor": "#fab005", 382 | "fillStyle": "hachure", 383 | "strokeWidth": 1, 384 | "strokeStyle": "solid", 385 | "roughness": 1, 386 | "opacity": 100, 387 | "groupIds": [], 388 | "strokeSharpness": "round", 389 | "seed": 748089285, 390 | "version": 301, 391 | "versionNonce": 634987915, 392 | "isDeleted": false, 393 | "boundElements": [ 394 | { 395 | "id": "1JRoA2wTzjGyN_057vaWf", 396 | "type": "arrow" 397 | }, 398 | { 399 | "id": "ILe4_nojxKkH0BuVpcc2S", 400 | "type": "arrow" 401 | }, 402 | { 403 | "id": "0GqxFo_G-Z2te1YSDjkS4", 404 | "type": "arrow" 405 | }, 406 | { 407 | "id": "lr-omY6niDuvnIZp_pcNF", 408 | "type": "arrow" 409 | }, 410 | { 411 | "type": "text", 412 | "id": "1t6czzbnBdet9zrBzNWh6" 413 | } 414 | ], 415 | "updated": 1653739564502, 416 | "link": null, 417 | "locked": false 418 | }, 419 | { 420 | "type": "ellipse", 421 | "version": 1356, 422 | "versionNonce": 807775243, 423 | "isDeleted": false, 424 | "id": "rePTODRgwKhhuueKe0P-W", 425 | "fillStyle": "hachure", 426 | "strokeWidth": 1, 427 | "strokeStyle": "solid", 428 | "roughness": 1, 429 | "opacity": 100, 430 | "angle": 0, 431 | "x": 1009.3920658626624, 432 | "y": 396.17773695604717, 433 | "strokeColor": "#5c940d", 434 | "backgroundColor": "#82c91e", 435 | "width": 151.44994056587063, 436 | "height": 151.44994056587063, 437 | "seed": 4373925, 438 | "groupIds": [], 439 | "strokeSharpness": "sharp", 440 | "boundElements": [ 441 | { 442 | "id": "uaWb0_R7H8eO00MeMR4-U", 443 | "type": "text" 444 | }, 445 | { 446 | "id": "uaWb0_R7H8eO00MeMR4-U", 447 | "type": "text" 448 | }, 449 | { 450 | "id": "0GqxFo_G-Z2te1YSDjkS4", 451 | "type": "arrow" 452 | }, 453 | { 454 | "id": "uaWb0_R7H8eO00MeMR4-U", 455 | "type": "text" 456 | }, 457 | { 458 | "type": "text", 459 | "id": "uaWb0_R7H8eO00MeMR4-U" 460 | }, 461 | { 462 | "id": "lr-omY6niDuvnIZp_pcNF", 463 | "type": "arrow" 464 | } 465 | ], 466 | "updated": 1653739507189, 467 | "link": null, 468 | "locked": false 469 | }, 470 | { 471 | "type": "text", 472 | "version": 1171, 473 | "versionNonce": 258158117, 474 | "isDeleted": false, 475 | "id": "uaWb0_R7H8eO00MeMR4-U", 476 | "fillStyle": "hachure", 477 | "strokeWidth": 1, 478 | "strokeStyle": "solid", 479 | "roughness": 1, 480 | "opacity": 100, 481 | "angle": 0, 482 | "x": 1014.3920658626625, 483 | "y": 459.4027072389826, 484 | "strokeColor": "#000000", 485 | "backgroundColor": "#fab005", 486 | "width": 141, 487 | "height": 25, 488 | "seed": 680336171, 489 | "groupIds": [], 490 | "strokeSharpness": "sharp", 491 | "boundElements": [], 492 | "updated": 1653739507189, 493 | "link": null, 494 | "locked": false, 495 | "fontSize": 20, 496 | "fontFamily": 1, 497 | "text": "Subscriber", 498 | "baseline": 18, 499 | "textAlign": "center", 500 | "verticalAlign": "middle", 501 | "containerId": "rePTODRgwKhhuueKe0P-W", 502 | "originalText": "Subscriber" 503 | }, 504 | { 505 | "type": "arrow", 506 | "version": 1638, 507 | "versionNonce": 1850340011, 508 | "isDeleted": false, 509 | "id": "lr-omY6niDuvnIZp_pcNF", 510 | "fillStyle": "hachure", 511 | "strokeWidth": 1, 512 | "strokeStyle": "dashed", 513 | "roughness": 1, 514 | "opacity": 50, 515 | "angle": 0, 516 | "x": 757.3100165235943, 517 | "y": 469.65197473329255, 518 | "strokeColor": "#000000", 519 | "backgroundColor": "#15aabf", 520 | "width": 235.34600112079943, 521 | "height": 0.07066705388143646, 522 | "seed": 638266021, 523 | "groupIds": [], 524 | "strokeSharpness": "round", 525 | "boundElements": [], 526 | "updated": 1653739507190, 527 | "link": null, 528 | "locked": false, 529 | "startBinding": { 530 | "elementId": "qcz9Jx50f22yMLg4f3Y2K", 531 | "focus": -0.025881884567760756, 532 | "gap": 7.816143961825738 533 | }, 534 | "endBinding": { 535 | "elementId": "rePTODRgwKhhuueKe0P-W", 536 | "focus": 0.04829284651230518, 537 | "gap": 16.761745669433523 538 | }, 539 | "lastCommittedPoint": null, 540 | "startArrowhead": null, 541 | "endArrowhead": "triangle", 542 | "points": [ 543 | [ 544 | 0, 545 | 0 546 | ], 547 | [ 548 | 235.34600112079943, 549 | 0.07066705388143646 550 | ] 551 | ] 552 | }, 553 | { 554 | "id": "1t6czzbnBdet9zrBzNWh6", 555 | "type": "text", 556 | "x": 578.6340792337131, 557 | "y": 459.3858777666232, 558 | "width": 165, 559 | "height": 25, 560 | "angle": 0, 561 | "strokeColor": "#000000", 562 | "backgroundColor": "#fab005", 563 | "fillStyle": "hachure", 564 | "strokeWidth": 1, 565 | "strokeStyle": "solid", 566 | "roughness": 1, 567 | "opacity": 100, 568 | "groupIds": [], 569 | "strokeSharpness": "round", 570 | "seed": 1737374155, 571 | "version": 14, 572 | "versionNonce": 59469163, 573 | "isDeleted": false, 574 | "boundElements": null, 575 | "updated": 1653739567432, 576 | "link": null, 577 | "locked": false, 578 | "text": "Topic", 579 | "fontSize": 20, 580 | "fontFamily": 1, 581 | "textAlign": "center", 582 | "verticalAlign": "middle", 583 | "baseline": 18, 584 | "containerId": "qcz9Jx50f22yMLg4f3Y2K", 585 | "originalText": "Topic" 586 | } 587 | ], 588 | "appState": { 589 | "gridSize": null, 590 | "viewBackgroundColor": "#ffffff" 591 | }, 592 | "files": {} 593 | } -------------------------------------------------------------------------------- /diagrams/scaling.excalidraw: -------------------------------------------------------------------------------- 1 | { 2 | "type": "excalidraw", 3 | "version": 2, 4 | "source": "https://excalidraw.com", 5 | "elements": [ 6 | { 7 | "id": "gNjTHymAA_OmTHKigo8gv", 8 | "type": "rectangle", 9 | "x": 435.171875, 10 | "y": 463.95703125, 11 | "width": 111.29118150707082, 12 | "height": 111.29118150707082, 13 | "angle": 0, 14 | "strokeColor": "#1864ab", 15 | "backgroundColor": "#228be6", 16 | "fillStyle": "hachure", 17 | "strokeWidth": 1, 18 | "strokeStyle": "solid", 19 | "roughness": 1, 20 | "opacity": 80, 21 | "groupIds": [], 22 | "strokeSharpness": "round", 23 | "seed": 1975289920, 24 | "version": 339, 25 | "versionNonce": 1433090112, 26 | "isDeleted": false, 27 | "boundElements": [ 28 | { 29 | "id": "99OpdsqE7GAW48JzCvISA", 30 | "type": "arrow" 31 | }, 32 | { 33 | "id": "bqVc9pihgKFbKbubQMCxC", 34 | "type": "arrow" 35 | } 36 | ], 37 | "updated": 1654686367255, 38 | "link": null, 39 | "locked": false 40 | }, 41 | { 42 | "id": "99OpdsqE7GAW48JzCvISA", 43 | "type": "arrow", 44 | "x": 572.8163013281966, 45 | "y": 518.2714809262145, 46 | "width": 297.1646901987558, 47 | "height": 0, 48 | "angle": 0, 49 | "strokeColor": "#000000", 50 | "backgroundColor": "#4c6ef5", 51 | "fillStyle": "hachure", 52 | "strokeWidth": 1, 53 | "strokeStyle": "dotted", 54 | "roughness": 1, 55 | "opacity": 50, 56 | "groupIds": [], 57 | "strokeSharpness": "round", 58 | "seed": 1883939776, 59 | "version": 661, 60 | "versionNonce": 1392403392, 61 | "isDeleted": false, 62 | "boundElements": null, 63 | "updated": 1654686341237, 64 | "link": null, 65 | "locked": false, 66 | "points": [ 67 | [ 68 | 0, 69 | 0 70 | ], 71 | [ 72 | 297.1646901987558, 73 | 0 74 | ] 75 | ], 76 | "lastCommittedPoint": null, 77 | "startBinding": { 78 | "focus": -0.02392177096684608, 79 | "gap": 26.353244821125713, 80 | "elementId": "gNjTHymAA_OmTHKigo8gv" 81 | }, 82 | "endBinding": null, 83 | "startArrowhead": null, 84 | "endArrowhead": "triangle" 85 | }, 86 | { 87 | "type": "arrow", 88 | "version": 826, 89 | "versionNonce": 570882112, 90 | "isDeleted": false, 91 | "id": "bqVc9pihgKFbKbubQMCxC", 92 | "fillStyle": "hachure", 93 | "strokeWidth": 1, 94 | "strokeStyle": "dotted", 95 | "roughness": 1, 96 | "opacity": 50, 97 | "angle": 4.71238898038469, 98 | "x": 339.49188973122824, 99 | "y": 291.80585714159906, 100 | "strokeColor": "#000000", 101 | "backgroundColor": "#4c6ef5", 102 | "width": 297.1646901987558, 103 | "height": 0, 104 | "seed": 993199040, 105 | "groupIds": [], 106 | "strokeSharpness": "round", 107 | "boundElements": [], 108 | "updated": 1654686337541, 109 | "link": null, 110 | "locked": false, 111 | "startBinding": { 112 | "focus": -0.043474733716210814, 113 | "gap": 24.15922083278889, 114 | "elementId": "gNjTHymAA_OmTHKigo8gv" 115 | }, 116 | "endBinding": { 117 | "elementId": "__Bec5oRXf7p5K9DbY_DR", 118 | "focus": 0.02969720540719587, 119 | "gap": 26.476348323452896 120 | }, 121 | "lastCommittedPoint": null, 122 | "startArrowhead": null, 123 | "endArrowhead": "triangle", 124 | "points": [ 125 | [ 126 | 0, 127 | 0 128 | ], 129 | [ 130 | 297.1646901987558, 131 | 0 132 | ] 133 | ] 134 | }, 135 | { 136 | "type": "rectangle", 137 | "version": 821, 138 | "versionNonce": 1949526976, 139 | "isDeleted": false, 140 | "id": "NyuOc4yVBfgzQFhGDVz1-", 141 | "fillStyle": "hachure", 142 | "strokeWidth": 1, 143 | "strokeStyle": "solid", 144 | "roughness": 1, 145 | "opacity": 80, 146 | "angle": 0, 147 | "x": 909.3318478290903, 148 | "y": 396.7205062893913, 149 | "strokeColor": "#1864ab", 150 | "backgroundColor": "#228be6", 151 | "width": 111.29118150707082, 152 | "height": 111.29118150707082, 153 | "seed": 1370078144, 154 | "groupIds": [], 155 | "strokeSharpness": "round", 156 | "boundElements": [ 157 | { 158 | "id": "99OpdsqE7GAW48JzCvISA", 159 | "type": "arrow" 160 | }, 161 | { 162 | "id": "bqVc9pihgKFbKbubQMCxC", 163 | "type": "arrow" 164 | } 165 | ], 166 | "updated": 1654686367256, 167 | "link": null, 168 | "locked": false 169 | }, 170 | { 171 | "type": "rectangle", 172 | "version": 1199, 173 | "versionNonce": 735719488, 174 | "isDeleted": false, 175 | "id": "Z3Kh_0upg1o0TPobBQa4i", 176 | "fillStyle": "hachure", 177 | "strokeWidth": 1, 178 | "strokeStyle": "solid", 179 | "roughness": 1, 180 | "opacity": 80, 181 | "angle": 0, 182 | "x": 908.3222371158479, 183 | "y": 529.8155849351325, 184 | "strokeColor": "#1864ab", 185 | "backgroundColor": "#228be6", 186 | "width": 111.29118150707082, 187 | "height": 111.29118150707082, 188 | "seed": 880559040, 189 | "groupIds": [], 190 | "strokeSharpness": "round", 191 | "boundElements": [ 192 | { 193 | "id": "99OpdsqE7GAW48JzCvISA", 194 | "type": "arrow" 195 | }, 196 | { 197 | "id": "bqVc9pihgKFbKbubQMCxC", 198 | "type": "arrow" 199 | } 200 | ], 201 | "updated": 1654686367256, 202 | "link": null, 203 | "locked": false 204 | }, 205 | { 206 | "type": "rectangle", 207 | "version": 864, 208 | "versionNonce": 978318272, 209 | "isDeleted": false, 210 | "id": "Zz969DF4f2z9E8GZHw80U", 211 | "fillStyle": "hachure", 212 | "strokeWidth": 1, 213 | "strokeStyle": "solid", 214 | "roughness": 1, 215 | "opacity": 80, 216 | "angle": 0, 217 | "x": 1040.1378004746832, 218 | "y": 396.7205062893913, 219 | "strokeColor": "#1864ab", 220 | "backgroundColor": "#228be6", 221 | "width": 111.29118150707082, 222 | "height": 111.29118150707082, 223 | "seed": 522843072, 224 | "groupIds": [], 225 | "strokeSharpness": "round", 226 | "boundElements": [ 227 | { 228 | "id": "99OpdsqE7GAW48JzCvISA", 229 | "type": "arrow" 230 | }, 231 | { 232 | "id": "bqVc9pihgKFbKbubQMCxC", 233 | "type": "arrow" 234 | } 235 | ], 236 | "updated": 1654686367256, 237 | "link": null, 238 | "locked": false 239 | }, 240 | { 241 | "type": "rectangle", 242 | "version": 1242, 243 | "versionNonce": 1235888192, 244 | "isDeleted": false, 245 | "id": "1pgLMV-W1Dk63nKOL0VS1", 246 | "fillStyle": "hachure", 247 | "strokeWidth": 1, 248 | "strokeStyle": "solid", 249 | "roughness": 1, 250 | "opacity": 80, 251 | "angle": 0, 252 | "x": 1039.1281897614408, 253 | "y": 529.8155849351325, 254 | "strokeColor": "#1864ab", 255 | "backgroundColor": "#228be6", 256 | "width": 111.29118150707082, 257 | "height": 111.29118150707082, 258 | "seed": 1429568448, 259 | "groupIds": [], 260 | "strokeSharpness": "round", 261 | "boundElements": [ 262 | { 263 | "id": "99OpdsqE7GAW48JzCvISA", 264 | "type": "arrow" 265 | }, 266 | { 267 | "id": "bqVc9pihgKFbKbubQMCxC", 268 | "type": "arrow" 269 | } 270 | ], 271 | "updated": 1654686367256, 272 | "link": null, 273 | "locked": false 274 | }, 275 | { 276 | "type": "rectangle", 277 | "version": 894, 278 | "versionNonce": 463174592, 279 | "isDeleted": false, 280 | "id": "jGVXnfnVLQGCfZXlIYHcw", 281 | "fillStyle": "hachure", 282 | "strokeWidth": 1, 283 | "strokeStyle": "solid", 284 | "roughness": 1, 285 | "opacity": 80, 286 | "angle": 0, 287 | "x": 1171.3627872639906, 288 | "y": 396.7205062893913, 289 | "strokeColor": "#1864ab", 290 | "backgroundColor": "#228be6", 291 | "width": 111.29118150707082, 292 | "height": 111.29118150707082, 293 | "seed": 1266072512, 294 | "groupIds": [], 295 | "strokeSharpness": "round", 296 | "boundElements": [ 297 | { 298 | "id": "99OpdsqE7GAW48JzCvISA", 299 | "type": "arrow" 300 | }, 301 | { 302 | "id": "bqVc9pihgKFbKbubQMCxC", 303 | "type": "arrow" 304 | } 305 | ], 306 | "updated": 1654686367256, 307 | "link": null, 308 | "locked": false 309 | }, 310 | { 311 | "type": "rectangle", 312 | "version": 1273, 313 | "versionNonce": 448471104, 314 | "isDeleted": false, 315 | "id": "uWGx0q3-aMXdYcgRJmM2l", 316 | "fillStyle": "hachure", 317 | "strokeWidth": 1, 318 | "strokeStyle": "solid", 319 | "roughness": 1, 320 | "opacity": 80, 321 | "angle": 0, 322 | "x": 1170.3531765507482, 323 | "y": 529.8155849351325, 324 | "strokeColor": "#1864ab", 325 | "backgroundColor": "#228be6", 326 | "width": 111.29118150707082, 327 | "height": 111.29118150707082, 328 | "seed": 2062276672, 329 | "groupIds": [], 330 | "strokeSharpness": "round", 331 | "boundElements": [ 332 | { 333 | "id": "99OpdsqE7GAW48JzCvISA", 334 | "type": "arrow" 335 | }, 336 | { 337 | "id": "bqVc9pihgKFbKbubQMCxC", 338 | "type": "arrow" 339 | } 340 | ], 341 | "updated": 1654686367256, 342 | "link": null, 343 | "locked": false 344 | }, 345 | { 346 | "type": "rectangle", 347 | "version": 697, 348 | "versionNonce": 1513489344, 349 | "isDeleted": false, 350 | "id": "__Bec5oRXf7p5K9DbY_DR", 351 | "fillStyle": "hachure", 352 | "strokeWidth": 1, 353 | "strokeStyle": "solid", 354 | "roughness": 1, 355 | "opacity": 80, 356 | "angle": 0, 357 | "x": 386.12372218072034, 358 | "y": -94.65281641550911, 359 | "strokeColor": "#1864ab", 360 | "backgroundColor": "#228be6", 361 | "width": 210.80958831051151, 362 | "height": 210.80958831051157, 363 | "seed": 1378873408, 364 | "groupIds": [], 365 | "strokeSharpness": "round", 366 | "boundElements": [ 367 | { 368 | "id": "99OpdsqE7GAW48JzCvISA", 369 | "type": "arrow" 370 | }, 371 | { 372 | "id": "bqVc9pihgKFbKbubQMCxC", 373 | "type": "arrow" 374 | } 375 | ], 376 | "updated": 1654686367256, 377 | "link": null, 378 | "locked": false 379 | }, 380 | { 381 | "id": "yZaPmMYaWNre5LpeNAkcr", 382 | "type": "text", 383 | "x": 665.661378632811, 384 | "y": 538.8353686886832, 385 | "width": 97, 386 | "height": 50, 387 | "angle": 0, 388 | "strokeColor": "#000000", 389 | "backgroundColor": "#228be6", 390 | "fillStyle": "hachure", 391 | "strokeWidth": 1, 392 | "strokeStyle": "solid", 393 | "roughness": 1, 394 | "opacity": 100, 395 | "groupIds": [], 396 | "strokeSharpness": "round", 397 | "seed": 1765667776, 398 | "version": 128, 399 | "versionNonce": 128996288, 400 | "isDeleted": false, 401 | "boundElements": null, 402 | "updated": 1654686337541, 403 | "link": null, 404 | "locked": false, 405 | "text": "Horizontal\nScaling", 406 | "fontSize": 20, 407 | "fontFamily": 1, 408 | "textAlign": "center", 409 | "verticalAlign": "top", 410 | "baseline": 43, 411 | "containerId": null, 412 | "originalText": "Horizontal\nScaling" 413 | }, 414 | { 415 | "type": "text", 416 | "version": 453, 417 | "versionNonce": 1224722496, 418 | "isDeleted": false, 419 | "id": "PfXTrMS8EqyaKMED6Isk7", 420 | "fillStyle": "hachure", 421 | "strokeWidth": 1, 422 | "strokeStyle": "solid", 423 | "roughness": 1, 424 | "opacity": 100, 425 | "angle": 0, 426 | "x": 510.07570639964365, 427 | "y": 266.54434579627616, 428 | "strokeColor": "#000000", 429 | "backgroundColor": "#228be6", 430 | "width": 74, 431 | "height": 50, 432 | "seed": 371590080, 433 | "groupIds": [], 434 | "strokeSharpness": "round", 435 | "boundElements": [], 436 | "updated": 1654686337541, 437 | "link": null, 438 | "locked": false, 439 | "fontSize": 20, 440 | "fontFamily": 1, 441 | "text": "Vertical\nScaling", 442 | "baseline": 43, 443 | "textAlign": "center", 444 | "verticalAlign": "top", 445 | "containerId": null, 446 | "originalText": "Vertical\nScaling" 447 | } 448 | ], 449 | "appState": { 450 | "gridSize": null, 451 | "viewBackgroundColor": "#ffffff" 452 | }, 453 | "files": {} 454 | } --------------------------------------------------------------------------------