<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE en-export SYSTEM "http://xml.evernote.com/pub/evernote-export3.dtd">
<en-export export-date="20200830T174656Z" application="Evernote" version="Evernote Mac 7.14 (458265)">
<note><title>test-imageWithoutSrc</title><content><![CDATA[<!DOCTYPE en-note SYSTEM "http://xml.evernote.com/pub/enml2.dtd"><en-note><div style="font-size: 16px; min-width: 100%; position: relative;"><div style="box-sizing:inherit;"><div style="box-sizing: inherit; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased;"><div style="box-sizing:inherit;"><div style="box-sizing: inherit; background-color: rgb(255, 255, 255);"><div style="box-sizing:inherit;"><div style="box-sizing:inherit;"><div style="box-sizing:inherit;word-break:break-word;overflow-wrap:break-word;"><div style="box-sizing:inherit;display:flex;justify-content:center;"><div style="box-sizing:inherit;min-width:0px;width:100%;max-width:680px;margin:0px 24px;"><div style="box-sizing: inherit; letter-spacing: -0.004em; margin-bottom: -0.46em; list-style-type: decimal; margin-left: 30px; padding-left: 0px; font-size: 18px; margin-top: 1.34em;"><br /></div></div></div></div><div style="box-sizing:inherit;word-break:break-word;overflow-wrap:break-word;"><div style="box-sizing:inherit;display:flex;justify-content:center;"><div style="box-sizing:inherit;min-width:0px;width:100%;max-width:680px;margin:0px 24px;"><h1 style="box-sizing: inherit; margin: 1.2em 0px -0.28em; letter-spacing: -0.022em; font-size: 30px;"><span style="font-size: 30px; color: rgba(0, 0, 0, 0.84); font-family: medium-content-sans-serif-font, &quot;Lucida Grande&quot;, &quot;Lucida Sans Unicode&quot;, &quot;Lucida Sans&quot;, Geneva, Arial, sans-serif; font-weight: 600; font-style: normal; line-height: 1.12;">Transaction Management &amp; Scope</span></h1><div style="box-sizing: inherit; margin: 0.67em 0px -0.46em; letter-spacing: -0.004em; font-size: 18px;"><span style="font-size: 18px; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, &quot;Times New Roman&quot;, Times, serif; font-weight: 400; font-style: normal; line-height: 1.58;">Other challenges lie in transaction management. Centralised (monolithic) applications, with more localised interactions, can better leverage database transaction scope; i.e. one transaction manages a series of database interactions, and still support relatively simple rollback and commit facilities.</span></div><div style="box-sizing: inherit; margin: 1.56em 0px -0.46em; letter-spacing: -0.004em; font-size: 18px;"><span style="font-size: 18px; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, &quot;Times New Roman&quot;, Times, serif; font-weight: 400; font-style: normal; line-height: 1.58;">Microservices, are more isolated, and often use different database technologies. Thus, transaction scope is isolated to the microservice-level; transactions are not shared. This leads to data consistency, and rollback challenges. Another practice must be used to orchestrate transactions. See </span><span style="font-size: 18px; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, &quot;Times New Roman&quot;, Times, serif; font-weight: 400; font-style: italic; line-height: 1.58; box-sizing: inherit;">Figure 10</span><span style="font-size: 18px; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, &quot;Times New Roman&quot;, Times, serif; font-weight: 400; font-style: normal; line-height: 1.58;">.</span></div><div style="box-sizing:inherit;margin:0px;margin-left:auto;margin-right:auto;clear:both;margin-top:40px;"><div style="box-sizing:inherit;margin-left:auto;margin-right:auto;max-width:700px;"><div style="box-sizing: inherit; margin: auto; position: relative; background-color: rgba(0, 0, 0, 0.05);"><div style="box-sizing: inherit; padding-bottom: 33.4286%;"><div style="box-sizing:inherit;top:0px;left:0px;width:100%;overflow:hidden;position:absolute;height:100%;will-change:transform;transform:translateZ(0px);opacity:1;transition:opacity 400ms ease 0ms;"><en-media hash="fff1e7928b148195402ae1cb7cf2edf8" type="image/jpeg" /><br /></div><div><span style="font-size: 16px; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen, Ubuntu, Cantarell, &quot;Open Sans&quot;, &quot;Helvetica Neue&quot;, sans-serif; font-weight: 400;"><img width="700" height="234" style="box-sizing: inherit; vertical-align: middle; top: 0px; left: 0px; width: 100%; position: absolute; opacity: 0; transition: opacity 100ms ease 400ms; height: 100%; background-color: rgb(255, 255, 255);" /></span></div></div></div></div><div style="box-sizing: inherit; margin-right: auto; max-width: 728px; font-size: 16px; margin-top: 10px; margin-left: auto; text-align: center;"><span style="font-size: 16px; color: rgba(0, 0, 0, 0.54); font-family: medium-content-sans-serif-font, &quot;Lucida Grande&quot;, &quot;Lucida Sans Unicode&quot;, &quot;Lucida Sans&quot;, Geneva, Arial, sans-serif; font-weight: 300; line-height: 1.4; font-style: italic; box-sizing: inherit;">Figure 10 — transactional scope; monolith vs microservices</span></div></div><div style="box-sizing: inherit; margin: 1.56em 0px -0.46em; letter-spacing: -0.004em; font-size: 18px;"><span style="font-size: 18px; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, &quot;Times New Roman&quot;, Times, serif; font-weight: 400; font-style: normal; line-height: 1.58;">In the first scenario, typical of a monolith, one transaction (Tx A) manages all five database interactions, often into the same (monolithic) database schema. The second case, used in microservices, is quite different. In this case, a transaction is managed per action (assuming each database interaction is encapsulated by a single microservice interaction). This is fine if all transactions succeed, but challenging when part of the flow fails and remedial action is required.</span></div><h1 style="box-sizing: inherit; margin: 1.2em 0px -0.28em; letter-spacing: -0.022em; font-size: 30px;"><span style="font-size: 30px; color: rgba(0, 0, 0, 0.84); font-family: medium-content-sans-serif-font, &quot;Lucida Grande&quot;, &quot;Lucida Sans Unicode&quot;, &quot;Lucida Sans&quot;, Geneva, Arial, sans-serif; font-weight: 600; font-style: normal; line-height: 1.12;">Uniformity</span></h1><div style="box-sizing: inherit; margin: 0.67em 0px -0.46em; letter-spacing: -0.004em; font-size: 18px;"><span style="font-size: 18px; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, &quot;Times New Roman&quot;, Times, serif; font-weight: 400; font-style: normal; line-height: 1.58;">If not carefully managed, microservices’ evolutionary benefit can also become a hindrance.</span></div><div style="box-sizing: inherit; margin: 1.56em 0px -0.46em; letter-spacing: -0.004em; font-size: 18px;"><span style="font-size: 18px; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, &quot;Times New Roman&quot;, Times, serif; font-weight: 400; font-style: normal; line-height: 1.58;">Being ultimately flexible in technological choice (Technology Choice per Microservice), runs the risk of such diversity that it may hamper change. For instance, if the implementation (and database) technology may be anything, there is a risk that the overall solution is so technologically diverse (i.e. a complex ecosystem) that (a) comprehension can be hard, (b) security concerns are spread over a wider range of technologies, and (c) moving technical staff across domains is difficult (e.g. Simon may be an extremely competent Java developer, but he has no skills in node.js).</span></div><div style="box-sizing: inherit; margin: 1.56em 0px -0.46em; letter-spacing: -0.004em; font-size: 18px;"><span style="font-size: 18px; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, &quot;Times New Roman&quot;, Times, serif; font-weight: 400; font-style: normal; line-height: 1.58;">This uniformity is also useful for the non-functional aspects used for logging, alerting, monitoring, or any other metric-gathering tools. We don’t (particularly) want multiple ways of processing these actions (regardless of implementation technology).</span></div><div style="box-sizing: inherit; margin: 1.56em 0px -0.46em; letter-spacing: -0.004em; font-size: 18px;"><span style="font-size: 18px; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, &quot;Times New Roman&quot;, Times, serif; font-weight: 400; font-style: normal; line-height: 1.58;">There’s also something to be said from a container security perspective. By limiting the number of technologies, we should be able to more quickly patch a container, and then re-release the microservice on top of it. Patching multiple divergent technology stacks can be tougher, and suggests a higher likelihood that we must wait upon the vendor to release a patch.</span></div><div style="box-sizing: inherit; margin: 1.56em 0px -0.46em; letter-spacing: -0.004em; font-size: 18px;"><span style="font-size: 18px; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, &quot;Times New Roman&quot;, Times, serif; font-weight: 400; font-style: normal; line-height: 1.58;">Promoting a level of uniformity is therefore sensible. Better to select a limited technology set for most cases, than an unmanageable technology sprawl.</span></div><h1 style="box-sizing: inherit; margin: 1.2em 0px -0.28em; letter-spacing: -0.022em; font-size: 30px;"><span style="font-size: 30px; color: rgba(0, 0, 0, 0.84); font-family: medium-content-sans-serif-font, &quot;Lucida Grande&quot;, &quot;Lucida Sans Unicode&quot;, &quot;Lucida Sans&quot;, Geneva, Arial, sans-serif; font-weight: 600; font-style: normal; line-height: 1.12;">Performance</span></h1><div style="box-sizing: inherit; margin: 0.67em 0px -0.46em; letter-spacing: -0.004em; font-size: 18px;"><span style="font-size: 18px; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, &quot;Times New Roman&quot;, Times, serif; font-weight: 400; font-style: normal; line-height: 1.58;">Because each microservice interaction is independent (including their transactions), any significant collaboration (i.e. a workflow involving many parties), can create performance challenges. Specifically, this relates to latency (the time it takes from the initiation of an action, to receiving a response). See </span><span style="font-size: 18px; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, &quot;Times New Roman&quot;, Times, serif; font-weight: 400; font-style: italic; line-height: 1.58; box-sizing: inherit;">Figure 11</span><span style="font-size: 18px; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, &quot;Times New Roman&quot;, Times, serif; font-weight: 400; font-style: normal; line-height: 1.58;">.</span></div><div style="box-sizing:inherit;margin:0px;margin-left:auto;margin-right:auto;clear:both;margin-top:40px;"><div style="box-sizing:inherit;width:100%;position:relative;transition:transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s;cursor:zoom-in;z-index:auto;"><div style="box-sizing:inherit;margin-left:auto;margin-right:auto;max-width:905px;"><div style="box-sizing: inherit; margin: auto; position: relative; background-color: rgba(0, 0, 0, 0.05);"><div style="box-sizing: inherit; padding-bottom: 43.6464%;"><div style="box-sizing:inherit;top:0px;left:0px;width:100%;overflow:hidden;position:absolute;height:100%;will-change:transform;transform:translateZ(0px);opacity:1;transition:opacity 400ms ease 0ms;"><en-media hash="eda87763d931e1fec5a863b27904af7e" type="image/jpeg" /><br /></div><div><span style="font-size: 16px; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen, Ubuntu, Cantarell, &quot;Open Sans&quot;, &quot;Helvetica Neue&quot;, sans-serif; font-weight: 400;"><img width="905" height="395" style="box-sizing: inherit; vertical-align: middle; top: 0px; left: 0px; width: 100%; position: absolute; opacity: 0; transition: opacity 100ms ease 400ms; height: 100%; background-color: rgb(255, 255, 255);" /></span></div></div></div></div></div><div style="box-sizing: inherit; margin-right: auto; max-width: 728px; font-size: 16px; margin-top: 10px; margin-left: auto; text-align: center;"><span style="font-size: 16px; color: rgba(0, 0, 0, 0.54); font-family: medium-content-sans-serif-font, &quot;Lucida Grande&quot;, &quot;Lucida Sans Unicode&quot;, &quot;Lucida Sans&quot;, Geneva, Arial, sans-serif; font-weight: 300; line-height: 1.4; font-style: italic; box-sizing: inherit;">Figure 11 — performance (latency) with microservices</span></div></div><div style="box-sizing: inherit; margin: 1.56em 0px -0.46em; letter-spacing: -0.004em; font-size: 18px;"><span style="font-size: 18px; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, &quot;Times New Roman&quot;, Times, serif; font-weight: 400; font-style: normal; line-height: 1.58;">No science was harmed in the making of this diagram! It’s merely meant to demonstrate the difference challenges for the architectural styles.</span></div><div style="box-sizing: inherit; margin: 1.56em 0px -0.46em; letter-spacing: -0.004em; font-size: 18px;"><span style="font-size: 18px; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, &quot;Times New Roman&quot;, Times, serif; font-weight: 400; font-style: normal; line-height: 1.58;">The scenario represents a distributed (e.g. microservices) system. The workflow interacts with four different domains (1, 2, 3, and 4) to complete a job. The useful functional value (white, numbered boxes) may be of a relatively short duration, whilst the red bar represents the varying latency costs of network negotiation/transfer/marshalling to talk with the next microservice. The orange bar represents the overall time cost so far. There’s quite a bit of red involved in these distributed interactions.</span></div><div style="box-sizing: inherit; margin: 1.56em 0px -0.46em; letter-spacing: -0.004em; font-size: 18px;"><span style="font-size: 18px; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, &quot;Times New Roman&quot;, Times, serif; font-weight: 400; font-style: normal; line-height: 1.58;">In </span><span style="font-size: 18px; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, &quot;Times New Roman&quot;, Times, serif; font-weight: 400; font-style: italic; line-height: 1.58; box-sizing: inherit;">Figure 12</span><span style="font-size: 18px; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, &quot;Times New Roman&quot;, Times, serif; font-weight: 400; font-style: normal; line-height: 1.58;"> we have a centralised representation.</span></div><div style="box-sizing:inherit;margin:0px;margin-left:auto;margin-right:auto;clear:both;margin-top:40px;"><div style="box-sizing:inherit;margin-left:auto;margin-right:auto;max-width:700px;"><div style="box-sizing: inherit; margin: auto; position: relative; background-color: rgba(0, 0, 0, 0.05);"><div style="box-sizing: inherit; padding-bottom: 37.1429%;"><div style="box-sizing:inherit;top:0px;left:0px;width:100%;overflow:hidden;position:absolute;height:100%;will-change:transform;transform:translateZ(0px);opacity:1;transition:opacity 400ms ease 0ms;"><en-media hash="113aac35fe66aa8a1dd2e51fd6025999" type="image/jpeg" /><br /></div><div><span style="font-size: 16px; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen, Ubuntu, Cantarell, &quot;Open Sans&quot;, &quot;Helvetica Neue&quot;, sans-serif; font-weight: 400;"><img width="700" height="260" style="box-sizing: inherit; vertical-align: middle; top: 0px; left: 0px; width: 100%; position: absolute; opacity: 0; transition: opacity 100ms ease 400ms; height: 100%; background-color: rgb(255, 255, 255);" /></span></div></div></div></div><div style="box-sizing: inherit; margin-right: auto; max-width: 728px; font-size: 16px; margin-top: 10px; margin-left: auto; text-align: center;"><span style="font-size: 16px; color: rgba(0, 0, 0, 0.54); font-family: medium-content-sans-serif-font, &quot;Lucida Grande&quot;, &quot;Lucida Sans Unicode&quot;, &quot;Lucida Sans&quot;, Geneva, Arial, sans-serif; font-weight: 300; line-height: 1.4; font-style: italic; box-sizing: inherit;">Figure 12 — monolith latency</span></div></div><div style="box-sizing: inherit; margin: 1.56em 0px -0.46em; letter-spacing: -0.004em; font-size: 18px;"><span style="font-size: 18px; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, &quot;Times New Roman&quot;, Times, serif; font-weight: 400; font-style: normal; line-height: 1.58;">In this case, the workflow must interact with the same four services/domains, but the cost to communicate with each component is much less (i.e. the short red bars).</span></div><blockquote style="box-sizing:inherit;margin:0px;box-shadow:rgba(0, 0, 0, 0.84) 3px 0px 0px 0px inset;padding-left:23px;margin-left:-20px;"><div style="box-sizing: inherit; margin: 1.56em 0px -0.46em; letter-spacing: -0.004em; font-size: 18px;"><span style="font-size: 18px; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, &quot;Times New Roman&quot;, Times, serif; font-weight: 700; font-style: italic; line-height: 1.58; box-sizing: inherit;">Note — Tactics to Reduce Latency Woes</span></div><div style="box-sizing: inherit; margin: 1.56em 0px -0.46em; letter-spacing: -0.004em; font-size: 18px;"><span style="font-size: 18px; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, &quot;Times New Roman&quot;, Times, serif; font-weight: 400; font-style: italic; line-height: 1.58;">There’s a few tactics that can mitigate these latency issues, but no real definitive solution. You can:</span></div><div style="box-sizing: inherit; margin: 1.56em 0px -0.46em; letter-spacing: -0.004em; font-size: 18px;"><span style="font-size: 18px; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, &quot;Times New Roman&quot;, Times, serif; font-weight: 400; font-style: italic; line-height: 1.58;">1. Attempt to bring dependents closer together in the network, thus reducing latency.</span></div><div style="box-sizing: inherit; margin: 1.56em 0px -0.46em; letter-spacing: -0.004em; font-size: 18px;"><span style="font-size: 18px; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, &quot;Times New Roman&quot;, Times, serif; font-weight: 400; font-style: italic; line-height: 1.58;">2. Use an orchestration mechanism that sends messages to each, and compiles a response as they become available (assuming you can do this).</span></div><div style="box-sizing: inherit; margin: 1.56em 0px -0.46em; letter-spacing: -0.004em; font-size: 18px;"><span style="font-size: 18px; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, &quot;Times New Roman&quot;, Times, serif; font-weight: 400; font-style: italic; line-height: 1.58;">3. Go entirely asynchronous.</span></div><div style="box-sizing: inherit; margin: 1.56em 0px -0.46em; letter-spacing: -0.004em; font-size: 18px;"><span style="font-size: 18px; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, &quot;Times New Roman&quot;, Times, serif; font-weight: 400; font-style: italic; line-height: 1.58;">4. If visual representation, provide data in stages, using technologies like Ajax.</span></div></blockquote><div style="box-sizing: inherit; margin: 1.56em 0px -0.46em; letter-spacing: -0.004em; font-size: 18px;"><span style="font-size: 18px; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, &quot;Times New Roman&quot;, Times, serif; font-weight: 400; font-style: normal; line-height: 1.58;">In the end, it depends upon the system. Most technologists I know would favor scalability over performance; i.e. ensure the system can scale to meet greater demands, at the (willing) cost of slightly reduced performance.</span></div></div></div><div style="clear: both;"></div></div><hr style="box-sizing:inherit;font-weight:300;text-align:center;font-family:medium-content-slab-serif-font, Georgia, Cambria, &quot;Times New Roman&quot;, Times, serif;font-size:28px;border:none;margin-top:30px;" /><div><span style="text-align: center; font-size: 28px; letter-spacing: 0.6em; text-indent: 0.6em; color: rgba(0, 0, 0, 0.8); font-family: medium-content-slab-serif-font, Georgia, Cambria, &quot;Times New Roman&quot;, Times, serif; font-weight: 300; font-style: italic; line-height: 1.4;">...</span></div><div style="box-sizing:inherit;word-break:break-word;overflow-wrap:break-word;"><div style="box-sizing:inherit;display:flex;justify-content:center;"><div style="box-sizing:inherit;min-width:0px;width:100%;max-width:680px;margin:0px 24px;"><h1 style="box-sizing: inherit; margin: 0.93em 0px -0.28em; letter-spacing: -0.022em; font-size: 30px;"><span style="font-size: 30px; color: rgba(0, 0, 0, 0.84); font-family: medium-content-sans-serif-font, &quot;Lucida Grande&quot;, &quot;Lucida Sans Unicode&quot;, &quot;Lucida Sans&quot;, Geneva, Arial, sans-serif; font-weight: 600; font-style: normal; line-height: 1.12;">Business &amp; Technical Qualities</span></h1><div style="box-sizing: inherit; margin: 0.67em 0px -0.46em; letter-spacing: -0.004em; font-size: 18px;"><span style="font-size: 18px; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, &quot;Times New Roman&quot;, Times, serif; font-weight: 400; font-style: normal; line-height: 1.58;">Microservices can (under the right conditions) promote the following qualities.</span></div><div style="box-sizing:inherit;margin:0px;margin-left:auto;margin-right:auto;clear:both;margin-top:40px;"><div style="box-sizing:inherit;width:100%;position:relative;transition:transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s;cursor:zoom-in;z-index:auto;"><div style="box-sizing:inherit;margin-left:auto;margin-right:auto;max-width:512px;"><div style="box-sizing: inherit; margin: auto; position: relative; background-color: rgba(0, 0, 0, 0.05);"><div style="box-sizing: inherit; padding-bottom: 75%;"><div style="box-sizing:inherit;top:0px;left:0px;width:100%;overflow:hidden;position:absolute;height:100%;will-change:transform;transform:translateZ(0px);opacity:1;transition:opacity 400ms ease 0ms;"><en-media hash="7dfc5702fef94c3f176f1e2e1f9b3669" type="image/jpeg" /><br /></div><div><span style="font-size: 16px; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen, Ubuntu, Cantarell, &quot;Open Sans&quot;, &quot;Helvetica Neue&quot;, sans-serif; font-weight: 400;"><img width="1024" height="768" style="box-sizing: inherit; vertical-align: middle; top: 0px; left: 0px; width: 100%; position: absolute; opacity: 0; transition: opacity 100ms ease 400ms; height: 100%; background-color: rgb(255, 255, 255);" /></span></div></div></div></div></div></div><div style="box-sizing: inherit; margin: 1.56em 0px -0.46em; letter-spacing: -0.004em; font-size: 18px;"><span style="font-size: 18px; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, &quot;Times New Roman&quot;, Times, serif; font-weight: 400; font-style: normal; line-height: 1.58;">Some of my qualifications may not be obvious at the moment (e.g. how can scalability support TTM?); however, this will make more sense in future publications.</span></div></div></div><div style="clear: both;"></div></div></div></div></div></div></div></div></div><div><br /></div></en-note>]]></content><created>20200113T183807Z</created><updated>20200830T174633Z</updated><note-attributes><source>web.clip7</source><source-url>https://medium.com/@nmckinnonblog/microservices-42b09caeb73d</source-url><source-application>webclipper.evernote</source-application><reminder-order>0</reminder-order></note-attributes><resource><data encoding="base64">/9j/2wCEACgcHiMeGSgjISMtKygwPGRBPDc3PHtYXUlkkYCZlo+AjIqgtObDoKrarYqMyP/L2u71////
m8H////6/+b9//gBKy0tPDU8dkFBdviljKX4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4
+Pj4+Pj4+Pj4+Pj4+Pj4+P/AABEIAC0APAMBIgACEQEDEQH/xAGiAAABBQEBAQEBAQAAAAAAAAAAAQID
BAUGBwgJCgsQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNi
coIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeI
iYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz
9PX29/j5+gEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoLEQACAQIEBAMEBwUEBAABAncAAQIDEQQF
ITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpT
VFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrC
w8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/ANd224pvmn0pZegq
MY7mgBTOA2DgcdzR9oX1X86hlgjlfJY5AFItpEMgSGk7jdraE32ke35ilFwD3X86gNnDn755+lOFtEAA
HOPrVK3UT20JTOMdvzqaqvkoF+/xirVSr9RuxHNwBTFAPc/hT5hkCmAL3piFAXceT0H9aXCnOSetNATc
Qc9Bxj/61O+Q5ySefSmAvy+p/Kk49T+VHyep6+lHy56n8qADC7Op6elS1D8u3qenpU1IBk3QVFwev61Y
KhutN8tfSgCEBcnOeg7UpMfOWPXuKl8tfSgxoeq0ARbo/wC8aUFP7zflT/KT+7S+WvpQBF8u3qc49Knp
vlr6U6gD/9k=</data><mime>image/jpeg</mime><width>60</width><height>45</height><duration>0</duration><resource-attributes><source-url>https://miro.medium.com/max/60/1*hXijdOBpM6U6PbIAPaFNlQ@2x.jpeg?q=20</source-url><file-name>1*hXijdOBpM6U6PbIAPaFNlQ@2x.jpeg</file-name></resource-attributes></resource><resource><data encoding="base64">/9j/2wCEACgcHiMeGSgjISMtKygwPGRBPDc3PHtYXUlkkYCZlo+AjIqgtObDoKrarYqMyP/L2u71////
m8H////6/+b9//gBKy0tPDU8dkFBdviljKX4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4
+Pj4+Pj4+Pj4+Pj4+Pj4+P/AABEIABQAPAMBIgACEQEDEQH/xAGiAAABBQEBAQEBAQAAAAAAAAAAAQID
BAUGBwgJCgsQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNi
coIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeI
iYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz
9PX29/j5+gEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoLEQACAQIEBAMEBwUEBAABAncAAQIDEQQF
ITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpT
VFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrC
w8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/ANFpGDEe/rSeZIen
T61G6fvHO4ck9qQbVwCw4o1JfL0ZPvf/ACamU/KM9aqEZHBH5VaRQUXIB49KOgK19COZmVhtOKj3yH+L
6UtwgyoGFAHTFRbVXJLfpRqN8vclDSev60od8cnP41GNpHB/ShQAOv5U15k3XRlvYv8AdH5UbE/ur+VL
RSLsJsT+6v5Uo46UUUABAPUA0mxf7o/KlooAjkAXOAPyojAZckD8qJeh+lLD9ygD/9k=</data><mime>image/jpeg</mime><width>60</width><height>20</height><duration>0</duration><resource-attributes><source-url>https://miro.medium.com/max/60/0*RuK5Uc39KyMAOkxr.jpg?q=20</source-url><file-name>0*RuK5Uc39KyMAOkxr.jpg</file-name></resource-attributes></resource><resource><data encoding="base64">/9j/2wCEACgcHiMeGSgjISMtKygwPGRBPDc3PHtYXUlkkYCZlo+AjIqgtObDoKrarYqMyP/L2u71////
m8H////6/+b9//gBKy0tPDU8dkFBdviljKX4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4
+Pj4+Pj4+Pj4+Pj4+Pj4+P/AABEIABYAPAMBIgACEQEDEQH/xAGiAAABBQEBAQEBAQAAAAAAAAAAAQID
BAUGBwgJCgsQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNi
coIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeI
iYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz
9PX29/j5+gEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoLEQACAQIEBAMEBwUEBAABAncAAQIDEQQF
ITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpT
VFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrC
w8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/AL4mCu4LN94+tIJf
32dz7ce/t/8AXp5tssW39TnpSi3x/F+lZ3n2NPd7jPMPmZy2Me/vQ8vK8tjPvUvk/wC1+lIbfP8AF+lF
59he6MM65PzH8jVmqxtM/wAf6VZqouT+IUkugUUUVRJG2d3Bx+FRurGQEHA4yM+9SHqaKAEwf736U1gx
XAbn8qfRQA1QwUAtzSEN2OePXFPooATByck4o6dzS0lAH//Z</data><mime>image/jpeg</mime><width>60</width><height>22</height><duration>0</duration><resource-attributes><source-url>https://miro.medium.com/max/60/0*x2glWzxpcQ0qselE.jpg?q=20</source-url><file-name>0*x2glWzxpcQ0qselE.jpg</file-name></resource-attributes></resource><resource><data encoding="base64">/9j/2wCEACgcHiMeGSgjISMtKygwPGRBPDc3PHtYXUlkkYCZlo+AjIqgtObDoKrarYqMyP/L2u71////
m8H////6/+b9//gBKy0tPDU8dkFBdviljKX4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4
+Pj4+Pj4+Pj4+Pj4+Pj4+P/AABEIABoAPAMBIgACEQEDEQH/xAGiAAABBQEBAQEBAQAAAAAAAAAAAQID
BAUGBwgJCgsQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNi
coIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeI
iYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz
9PX29/j5+gEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoLEQACAQIEBAMEBwUEBAABAncAAQIDEQQF
ITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpT
VFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrC
w8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/ANSZiI25I57fWolk
IJYs5B7f5NSTf6tsY69/rUILd9n/AI7WcpNPQuKuiYXChASGNKlwr5wG4qLt0X9Kbhx90KP++aOcfKi4
DkZoqpvnA4ZfzFSRynaN7rnvyKu6JcbE9FNEsZ6Ov50eYn99fzpkiPGGUhicVF5UIB+Y8e9WD0NMIzSc
U9xptEYSLGQxpSsYGSxxTwAOAMUEA9RmlyoOZkZji/vH8xSeTEf4mqWjA9BRyx7BzMjjgjDZUtn605rd
HOSWp69adVCbuf/Z</data><mime>image/jpeg</mime><width>60</width><height>26</height><duration>0</duration><resource-attributes><source-url>https://miro.medium.com/max/60/0*1o3tk4QQCG15z1iT.jpg?q=20</source-url><file-name>0*1o3tk4QQCG15z1iT.jpg</file-name></resource-attributes></resource></note>
</en-export>
