<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7677652326497115767</id><updated>2024-03-16T04:09:30.653+03:00</updated><category term="Performance Monitoring and Tuning"/><category term="Design"/><category term="Concurrency"/><category term="Java Tricks"/><category term="Security"/><category term="Web Service"/><category term="API"/><category term="Performance"/><category term="API Design"/><category term="API Hypermedia"/><category term="API Metadata"/><category term="API Naming Convention"/><category term="API Standard"/><category term="API Uniform Contract"/><category term="Application Architecture"/><category term="Arcitura"/><category term="Hibernate"/><category term="Microservices Architecture"/><category term="Testing"/><category term="API Generations"/><category term="API History"/><category term="Agile"/><category term="Agility"/><category term="Application Programming Interface"/><category term="Architecture"/><category term="Char Encoding"/><category term="Design Patterns"/><category term="DevOps"/><category term="Enterprise Application Architecture"/><category term="IO"/><category term="Information Architecture"/><category term="Integration Architecture"/><category term="JSON JAXB"/><category term="Logging"/><category term="MSA"/><category term="Mapping"/><category term="Maven\"/><category term="Microservices Design Patterns"/><category term="Microservices Drivers"/><category term="Microservices.io"/><category term="NoSQL"/><category term="Oracle"/><category term="Reliability"/><category term="SOA"/><category term="Scalability"/><category term="Software Architecture"/><category term="Technology Architecture"/><title type='text'>Haitham Raik</title><subtitle type='html'>Java is my passion.&#xa;I am Certified as Solution Designer from IBM, Certified as SOA Architect and Microservices Architect from Arcitura</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://raikblog.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://raikblog.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Haitham Raik</name><uri>http://www.blogger.com/profile/04008662680572575275</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>139</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7677652326497115767.post-2118126459069960052</id><published>2022-03-07T12:45:00.002+03:00</published><updated>2022-03-07T12:45:41.134+03:00</updated><title type='text'>Software Architecture Evolution</title><content type='html'>&lt;p&gt;&lt;span style=&quot;background-color: white; color: #292929; font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 20px; letter-spacing: -0.003em;&quot;&gt;Have you ever wondered what is the history of the software architecture? When was the first use of architecture acronym in the software? How microservices benefited&lt;/span&gt;&lt;span class=&quot;ia hc&quot; style=&quot;box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 20px; font-weight: 700; letter-spacing: -0.003em;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #292929; font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 20px; letter-spacing: -0.003em;&quot;&gt;from DDD, REST, Containers, etc.? How Architecture documentation and descriptions have been evolved over the time?&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph hy hz hb ia b ib ic id ie if ig ih ii ij ik il im in io ip iq ir is it iu iv gu fd&quot; data-selectable-paragraph=&quot;&quot; id=&quot;7183&quot; style=&quot;background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;&quot;&gt;To answer all of these questions and more, I have build the below timeline infographic that shows how the architecture evolved over the time and became in its current shape(s):&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhkVz39tenx0CM-cEy_9usOUVr0AXRNjeMrluaKwTcrH1QxHv9bR3ZDVNN30WZPhWf-5tOAFvRTePV33nIva1fku8DnfkNJWVn4N81DqTJcMaUp5A7IPY4KULk30gS0cGzFAz2Lcbbek3dTWUMbJWAo7rV46fpDesgHkEUsHZpLLECQgbVdT4icx8DhyA=s1618&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1151&quot; data-original-width=&quot;1618&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhkVz39tenx0CM-cEy_9usOUVr0AXRNjeMrluaKwTcrH1QxHv9bR3ZDVNN30WZPhWf-5tOAFvRTePV33nIva1fku8DnfkNJWVn4N81DqTJcMaUp5A7IPY4KULk30gS0cGzFAz2Lcbbek3dTWUMbJWAo7rV46fpDesgHkEUsHZpLLECQgbVdT4icx8DhyA=s16000&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;figure class=&quot;ix iy iz ja ew jb ek el paragraph-image&quot; style=&quot;background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Open Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; margin: 56px auto 0px;&quot;&gt;&lt;figcaption class=&quot;ji jj em ek el jk jl cg b gd fm bw&quot; data-selectable-paragraph=&quot;&quot; style=&quot;box-sizing: inherit; color: #757575; font-family: sohne, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin-left: auto; margin-right: auto; margin-top: 10px; max-width: 728px; text-align: center;&quot;&gt;Software Architecture Evolution Timeline Infographic&lt;/figcaption&gt;&lt;/figure&gt;&lt;p class=&quot;pw-post-body-paragraph hy hz hb ia b ib ic id ie if ig ih ii ij ik il im in io ip iq ir is it iu iv gu fd&quot; data-selectable-paragraph=&quot;&quot; id=&quot;15a9&quot; style=&quot;background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;&quot;&gt;&lt;span class=&quot;ia hc&quot; style=&quot;box-sizing: inherit; font-weight: 700;&quot;&gt;Notes:&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph hy hz hb ia b ib ic id ie if ig ih ii ij ik il im in io ip iq ir is it iu iv gu fd&quot; data-selectable-paragraph=&quot;&quot; id=&quot;513e&quot; style=&quot;background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;&quot;&gt;According to the above its worth mentioning that:&lt;/p&gt;&lt;ol class=&quot;&quot; style=&quot;background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Open Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; list-style: none none; margin: 0px; padding: 0px;&quot;&gt;&lt;li class=&quot;jm jn hb ia b ib ic if ig ij jo in jp ir jq iv jr js jt ju fd&quot; data-selectable-paragraph=&quot;&quot; id=&quot;d8b5&quot; style=&quot;box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 28px; list-style-type: decimal; margin-bottom: -0.46em; margin-left: 30px; margin-top: 2.14em; padding-left: 0px;&quot;&gt;Software Architecture as a concept has been founded in 60s, but the Architecture Style and Architecture Pattern as concepts didn’t exist until the 90s&lt;/li&gt;&lt;li class=&quot;jm jn hb ia b ib jv if jw ij jx in jy ir jz iv jr js jt ju fd&quot; data-selectable-paragraph=&quot;&quot; id=&quot;4d8e&quot; style=&quot;box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 28px; list-style-type: decimal; margin-bottom: -0.46em; margin-left: 30px; margin-top: 1.14em; padding-left: 0px;&quot;&gt;Architecture Documentation has started by defining views concept in 70s, but it didn’t get importance until the 90s with RUP4+1 and TOGAF&lt;/li&gt;&lt;li class=&quot;jm jn hb ia b ib jv if jw ij jx in jy ir jz iv jr js jt ju fd&quot; data-selectable-paragraph=&quot;&quot; id=&quot;f361&quot; style=&quot;box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 28px; list-style-type: decimal; margin-bottom: -0.46em; margin-left: 30px; margin-top: 1.14em; padding-left: 0px;&quot;&gt;Architecture Documentation had a standard in the 2000s by IEEE1471/ISO42010&lt;/li&gt;&lt;li class=&quot;jm jn hb ia b ib jv if jw ij jx in jy ir jz iv jr js jt ju fd&quot; data-selectable-paragraph=&quot;&quot; id=&quot;19d1&quot; style=&quot;box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 28px; list-style-type: decimal; margin-bottom: -0.46em; margin-left: 30px; margin-top: 1.14em; padding-left: 0px;&quot;&gt;TCP/IP and internet was founded in the 70s which was the base for RPC, Client/Server Architectures and eventually all the distributed architecture styles we have today (e.g., Multi-Tiers, Component-based Architecture, SOA, Microservices, etc.)&lt;/li&gt;&lt;li class=&quot;jm jn hb ia b ib jv if jw ij jx in jy ir jz iv jr js jt ju fd&quot; data-selectable-paragraph=&quot;&quot; id=&quot;5e24&quot; style=&quot;box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 28px; list-style-type: decimal; margin-bottom: -0.46em; margin-left: 30px; margin-top: 1.14em; padding-left: 0px;&quot;&gt;SQL and ERD founded in the 70s&lt;/li&gt;&lt;li class=&quot;jm jn hb ia b ib jv if jw ij jx in jy ir jz iv jr js jt ju fd&quot; data-selectable-paragraph=&quot;&quot; id=&quot;b08a&quot; style=&quot;box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 28px; list-style-type: decimal; margin-bottom: -0.46em; margin-left: 30px; margin-top: 1.14em; padding-left: 0px;&quot;&gt;OO Concepts and OO Programming was already exist even before procedural and functional programming paradigm, but OO didn’t gain popularity until the 80s&lt;/li&gt;&lt;li class=&quot;jm jn hb ia b ib jv if jw ij jx in jy ir jz iv jr js jt ju fd&quot; data-selectable-paragraph=&quot;&quot; id=&quot;4b14&quot; style=&quot;box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 28px; list-style-type: decimal; margin-bottom: -0.46em; margin-left: 30px; margin-top: 1.14em; padding-left: 0px;&quot;&gt;Object modeling started in the 90s and UML came as a unification effort for the different modeling techniques founded in that era especially OMT and Booch modeling&lt;/li&gt;&lt;li class=&quot;jm jn hb ia b ib jv if jw ij jx in jy ir jz iv jr js jt ju fd&quot; data-selectable-paragraph=&quot;&quot; id=&quot;b575&quot; style=&quot;box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 28px; list-style-type: decimal; margin-bottom: -0.46em; margin-left: 30px; margin-top: 1.14em; padding-left: 0px;&quot;&gt;Its worth noting that SOLID principles have been evolved over time starting from the 80s and the acronym itself haven’t been coined until the 2000s. The first principle founded was LSP in the 80s, followed by OCP, ISP and DIP in the 90s and the last principle founded was Single Responsibility Principle (SRP) in the 2000s&lt;/li&gt;&lt;li class=&quot;jm jn hb ia b ib jv if jw ij jx in jy ir jz iv jr js jt ju fd&quot; data-selectable-paragraph=&quot;&quot; id=&quot;14f3&quot; style=&quot;box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 28px; list-style-type: decimal; margin-bottom: -0.46em; margin-left: 30px; margin-top: 1.14em; padding-left: 0px;&quot;&gt;The 3-Tier Architecture founded as a need emerged from the presence of WWW and HTML to build web applications&lt;/li&gt;&lt;li class=&quot;jm jn hb ia b ib jv if jw ij jx in jy ir jz iv jr js jt ju fd&quot; data-selectable-paragraph=&quot;&quot; id=&quot;a8af&quot; style=&quot;box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 28px; list-style-type: decimal; margin-bottom: -0.46em; margin-left: 30px; margin-top: 1.14em; padding-left: 0px;&quot;&gt;SOA is an evolution for the Component-based Architecture that benefited from SOAP (1998), WSDL (2002) and XSD (2001) for more interoperability.&lt;/li&gt;&lt;li class=&quot;jm jn hb ia b ib jv if jw ij jx in jy ir jz iv jr js jt ju fd&quot; data-selectable-paragraph=&quot;&quot; id=&quot;5f63&quot; style=&quot;box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 28px; list-style-type: decimal; margin-bottom: -0.46em; margin-left: 30px; margin-top: 1.14em; padding-left: 0px;&quot;&gt;Microservice is an evolution for Domain Driven Design (2003) that benefited from REST (2000), Event-driven programming(1970), containers (1979) and many other techniques for more autonomy, maintainability and flexibility.&lt;/li&gt;&lt;li class=&quot;jm jn hb ia b ib jv if jw ij jx in jy ir jz iv jr js jt ju fd&quot; data-selectable-paragraph=&quot;&quot; id=&quot;8962&quot; style=&quot;box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 28px; list-style-type: decimal; margin-bottom: -0.46em; margin-left: 30px; margin-top: 1.14em; padding-left: 0px;&quot;&gt;Containers was already exist since the 70s but it gained popularity in the Microservices era&lt;/li&gt;&lt;li class=&quot;jm jn hb ia b ib jv if jw ij jx in jy ir jz iv jr js jt ju fd&quot; data-selectable-paragraph=&quot;&quot; id=&quot;bfb2&quot; style=&quot;box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 28px; list-style-type: decimal; margin-bottom: -0.46em; margin-left: 30px; margin-top: 1.14em; padding-left: 0px;&quot;&gt;REST APIs (founded in 2000) was already exist before SOAP-based webservices (first standard released was WS-I BP in 2004), but REST API didn’t get popularity until 2008. For more information about the APIs history, please check the&amp;nbsp;&lt;a class=&quot;au ka&quot; href=&quot;https://haitham-raik.medium.com/api-definition-and-history-c35a49cedee&quot; rel=&quot;noopener&quot; style=&quot;-webkit-tap-highlight-color: transparent; box-sizing: inherit;&quot;&gt;API Definition and History&lt;/a&gt;&amp;nbsp;article&lt;/li&gt;&lt;/ol&gt;</content><link rel='replies' type='application/atom+xml' href='http://raikblog.blogspot.com/feeds/2118126459069960052/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://raikblog.blogspot.com/2022/03/software-architecture-evolution.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/2118126459069960052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/2118126459069960052'/><link rel='alternate' type='text/html' href='http://raikblog.blogspot.com/2022/03/software-architecture-evolution.html' title='Software Architecture Evolution'/><author><name>Haitham Raik</name><uri>http://www.blogger.com/profile/04008662680572575275</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEhkVz39tenx0CM-cEy_9usOUVr0AXRNjeMrluaKwTcrH1QxHv9bR3ZDVNN30WZPhWf-5tOAFvRTePV33nIva1fku8DnfkNJWVn4N81DqTJcMaUp5A7IPY4KULk30gS0cGzFAz2Lcbbek3dTWUMbJWAo7rV46fpDesgHkEUsHZpLLECQgbVdT4icx8DhyA=s72-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7677652326497115767.post-4563312579807880419</id><published>2021-03-04T10:49:00.013+03:00</published><updated>2021-03-09T22:01:04.639+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="API"/><category scheme="http://www.blogger.com/atom/ns#" term="API Design"/><category scheme="http://www.blogger.com/atom/ns#" term="API Hypermedia"/><category scheme="http://www.blogger.com/atom/ns#" term="API Metadata"/><category scheme="http://www.blogger.com/atom/ns#" term="API Naming Convention"/><category scheme="http://www.blogger.com/atom/ns#" term="API Standard"/><category scheme="http://www.blogger.com/atom/ns#" term="API Uniform Contract"/><category scheme="http://www.blogger.com/atom/ns#" term="Application Architecture"/><category scheme="http://www.blogger.com/atom/ns#" term="Arcitura"/><category scheme="http://www.blogger.com/atom/ns#" term="Design"/><category scheme="http://www.blogger.com/atom/ns#" term="Web Service"/><title type='text'>Consolidated Design Rules and Standards for Great REST API</title><content type='html'>&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 3pt; margin-top: 0pt;&quot;&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;In a previous thread
named &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://raikblog.blogspot.com/2021/02/consolidated-design-rules-and.html&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt;&quot;&gt;Consolidated
Design Rules and Standards for Great API&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;, we have explored the consolidated list of rules and standards
for designing Web APIs which can be applied for REST and non-REST APIs. This
thread builds on the previous thread and deeps dive in REST APIs in particular
and lists the most common conventions, rules and standards that makes REST APIs
great and will be grouped by the HTTP methods.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;At the end of this
thread, we will see a step-by-step process to help you in the design for a
Great REST API.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in; mso-outline-level: 1;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; font-size: 20pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-font-kerning: 18.0pt;&quot;&gt;What REST really means?&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 24pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-font-kerning: 18.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;To understand what REST
really means, we should first understand what Resource, Representation,
Application State, and Resource State mean?&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in; mso-outline-level: 2;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; font-size: 16pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Resource&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 18pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;A resource can be
anything that can be stored on a computer; file, a record in a database, a
computational algorithm, etc.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Resources need an
identification mechanism to give them a unique id that distinguishes them from
any other resource. In our case, URL are used to give the resources a
distinguished identifications&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in; mso-outline-level: 2;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; font-size: 16pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Representation&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 18pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;As explained, a resource
can be a record in a database which can be stored as a set of binary data. But
it will be meaningless to transmit database binary records between the consumer
and server. It will be more realistic if we can transmit a document that
describes the database record (or any other resource) in a machine-readable
language. This document is called &lt;i&gt;representation&lt;/i&gt;.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;A representation is a
machine-readable document used to describe a resource for the purpose of
communication between the client and server (i.e., consumer and provider).
Common representations formats are JSON and XML.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in; mso-outline-level: 2;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; font-size: 16pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Application State&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 18pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;With the web browsers,
the user can open any page and he can surf the web moving from page to another.
In this case, the currently open page is considered as the current state of the
application (e.g., the application here is the browser itself).&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;In the world of APIs, if
a consumer did a call to get a list of users and then did another call to get
the details of one of these users. The application state in this case was the
“list of users” and then moved to state “detailed user”.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Application state is
maintained on the client and the server doesn’t know anything about a client’s
application state&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in; mso-outline-level: 2;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; font-size: 16pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Resource State&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 18pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;If a server maintains a
resource called user and its name is Alex and the locked flag is false and somehow
it has been updated to Sam and the locked flag to true. In this case, the user
resource state has moved from “Alex, not blocked” to “Sam, blocked”.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Resource state is
maintained by the service, but the client can get a representation for it from
the server.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in; mso-outline-level: 2;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; font-size: 16pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;REST&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 18pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Representational state
transfer (REST), as it names implies, it allows the server to &lt;u&gt;transfer&lt;/u&gt;
the application &lt;u&gt;state &lt;/u&gt;by sending a &lt;u&gt;representation &lt;/u&gt;of a resource
(e.g., as a response of a GET request) and it also allows the client to &lt;u&gt;transfer&lt;/u&gt;
the resource &lt;u&gt;state&lt;/u&gt; by sending a &lt;u&gt;representation&lt;/u&gt; for a resource to
the server (e.g., send a PUT request).&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;REST as an architectural
style has been introduced by Roy Fielding in 2000. He defined REST as a set of
constraints on top of the word wide web to make the APIs look like the web. The
fifth constrain (Uniform Interface) is the fundamental extension to build REST
API:&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Constraint 1: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;REST architecture must be built based on &lt;b&gt;Client-Server&lt;/b&gt;
architecture&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Constraint 2: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;REST architecture must be a &lt;b&gt;Layered system&lt;/b&gt; proxies and
Firewalls and any other intermediates can be added and removed without
affecting the communication between the client and the server&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Constraint 3: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;REST architecture must support &lt;b&gt;Cache&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Constraint 4: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;REST architecture must be &lt;b&gt;Stateless&lt;/b&gt; which means that the
server should not know anything about the Application State (see the above
definition)&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Constraint 5: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;REST API must be built using &lt;u&gt;Uniform Interface&lt;/u&gt;. To have
uniform interface, the following more constraints need to be applied:&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ol start=&quot;1&quot; style=&quot;margin-top: 0in;&quot; type=&quot;1&quot;&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; margin-top: 12pt; mso-list: l13 level1 lfo1; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Resources
     must be identified in the requests using URIs&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l13 level1 lfo1; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Resources must be manipulated
     by sending representations using standard set of HTTP methods (GET, POST,
     PUT, DELETE, OPTIONS, HEAD, PATCH)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l13 level1 lfo1; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Messages (request and response
     payload) must be self-descriptive by using media-types (for example:
     application/json and application/xml)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 12pt; mso-list: l13 level1 lfo1; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Hypermedia
     As The Engine Of Application State (HATEOAS) must be supported to allow
     the client to surf the API similar to end-user surfing the web.HATEOAS
     means the &lt;u&gt;hypermedias&lt;/u&gt; returned by the server works as &lt;u&gt;engines &lt;/u&gt;that
     move the client from &lt;u&gt;application state&lt;/u&gt; to another.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in; mso-outline-level: 1;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; font-size: 20pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-font-kerning: 18.0pt;&quot;&gt;Generic Rules&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 24pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-font-kerning: 18.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;The following rules must be followed regardless
what is the HTTP method used:&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 6.0pt; margin-left: 0in; margin-right: 0in; margin-top: .25in; margin: 0.25in 0in 6pt; mso-outline-level: 2;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; font-size: 16pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Generic rules for URL naming&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 18pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 10.0pt; margin: 10pt 0in 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 1: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Apply the Security rules
defined in &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://raikblog.blogspot.com/2021/02/consolidated-design-rules-and.html&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt;&quot;&gt;previous
thread&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 10.0pt; margin: 10pt 0in 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 2: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Apply the Performance
and Reliability rules defined in &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://raikblog.blogspot.com/2021/02/consolidated-design-rules-and.html&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt;&quot;&gt;previous
thread&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 10.0pt; margin: 10pt 0in 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 3: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Apply the Clarity and
Consistency rules defined in &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://raikblog.blogspot.com/2021/02/consolidated-design-rules-and.html&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt;&quot;&gt;previous
thread&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 10.0pt; margin: 10pt 0in 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 4: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Apply the Change
Management Rules defined in &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://raikblog.blogspot.com/2021/02/consolidated-design-rules-and.html&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt;&quot;&gt;previous
thread&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 5: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;URI should identify one and only one resource&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 6: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Resource can be either a collection or an object&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ol start=&quot;1&quot; style=&quot;margin-top: 0in;&quot; type=&quot;1&quot;&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: #333333; line-height: normal; margin-bottom: 0in; mso-list: l7 level1 lfo2; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Example for collection: &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;/users&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: #333333; line-height: normal; margin-bottom: 0in; mso-list: l7 level1 lfo2; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Example for single user object: &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;/users/121&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 10.0pt; margin: 10pt 0in 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 7: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Use plural nouns for
resources names. For example: &lt;/span&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;/users&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 10.0pt; margin: 10pt 0in 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 8: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Resource
URI MUST NOT end with (/). &lt;/span&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;/users&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 10.0pt; margin: 10pt 0in 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 9: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Refer to a specific object for any resource as a sub-resource&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ol start=&quot;1&quot; style=&quot;margin-top: 0in;&quot; type=&quot;1&quot;&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: #333333; line-height: normal; margin-bottom: 0in; margin-top: 10pt; mso-list: l25 level1 lfo3; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Use following to get user with id 121: &lt;/span&gt;&lt;span style=&quot;background: white; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;GET /users/121&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 10.0pt; margin: 10pt 0in 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 10: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;If there is a resource hierarchically related to another
resource, it is better to be presented as a sub-resource.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ol start=&quot;1&quot; style=&quot;margin-top: 0in;&quot; type=&quot;1&quot;&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: #333333; line-height: normal; margin-bottom: 0in; mso-list: l21 level1 lfo4; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;You can use
     the following to get all the addresses for user 121: &lt;/span&gt;&lt;span style=&quot;background: white; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Get /users/121/addresses&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: #333333; line-height: normal; margin-bottom: 0in; mso-list: l21 level1 lfo4; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Or you can use
     the following to get all addresses for all users: &lt;/span&gt;&lt;span style=&quot;background: white; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Get /users/addresses&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 10.0pt; margin: 10pt 0in 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 11: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Hyphen (-) can be used to enhance the URI readability&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 10.0pt; margin: 10pt 0in 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 12: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Avoid underscore (_) in URI&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 10.0pt; margin: 10pt 0in 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 13: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Don’t use Uppercase in URI&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 10.0pt; margin: 10pt 0in 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 14: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Avoid Dot (.) in URI&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 10.0pt; margin: 10pt 0in 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 15: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Avoid comma (,) and semicolon (;) in URI&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 10.0pt; margin: 10pt 0in 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 16: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Avoid spaces in URI&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 10.0pt; margin: 10pt 0in 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 17: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Don’t use verbs in URI for CRUD operations&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ol start=&quot;1&quot; style=&quot;margin-top: 0in;&quot; type=&quot;1&quot;&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: #333333; line-height: normal; margin-bottom: 0in; margin-top: 10pt; mso-list: l6 level1 lfo5; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;DO NOT USE: &lt;/span&gt;&lt;span style=&quot;background: white; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;GET /getusers&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 10.0pt; margin: 10pt 0in 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 18: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;For non-CRUD operations (validate, calculate, check, search,
lock, unlock, merge, copy, duplicate, process, etc.), use a verb as a
sub-source:&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ol start=&quot;1&quot; style=&quot;margin-top: 0in;&quot; type=&quot;1&quot;&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: #333333; line-height: normal; margin-bottom: 0in; mso-list: l3 level1 lfo6; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;It is ok to use the following to lock
     specific user &lt;/span&gt;&lt;span style=&quot;background: white; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;/users/121/lock&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: #333333; line-height: normal; margin-bottom: 0in; mso-list: l3 level1 lfo6; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;It is ok to use the following to lock
     all users&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;background: white; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;/users/lock&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: #333333; line-height: normal; margin-bottom: 0in; mso-list: l3 level1 lfo6; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;It is ok to use the following to
     search for users: &lt;/span&gt;&lt;span style=&quot;background: white; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;/users/search&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;font-size: 10.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: #333333; line-height: normal; margin-bottom: 0in; mso-list: l3 level1 lfo6; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;It is ok to use the following to merge
     all the addresses of a specific user: &lt;/span&gt;&lt;span style=&quot;background: white; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;/users/121/addresses/merge&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;font-size: 10.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 10.0pt; margin: 10pt 0in 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 19: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;For search operations that may need to fetch data from
multiple resources, URI can be defined as a parent resource:&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ol start=&quot;1&quot; style=&quot;margin-top: 0in;&quot; type=&quot;1&quot;&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: #333333; line-height: normal; margin-bottom: 0in; margin-top: 10pt; mso-list: l24 level1 lfo7; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;background: white; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;GET
     /search?q=abc&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 10.0pt; margin: 10pt 0in 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 20:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; To define variables in URI, use standard URI Template format
as per&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://tools.ietf.org/html/rfc6570&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: black; font-size: 11pt;&quot;&gt; &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #1155cc; font-size: 11pt;&quot;&gt;URI Template&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;
standard:&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ol start=&quot;1&quot; style=&quot;margin-top: 0in;&quot; type=&quot;1&quot;&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: #333333; line-height: normal; margin-bottom: 0in; margin-top: 10pt; mso-list: l23 level1 lfo8; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;In the following &lt;/span&gt;&lt;span style=&quot;background: white; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;{userId}&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; must be replaced by the consumer with valid user Id
     value&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;background: white; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;/users/{userId}/addresses&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 10.0pt; margin: 10pt 0in 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 21:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Query parameters can be used for filtration, sorting and pagination:&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ol start=&quot;1&quot; style=&quot;margin-top: 0in;&quot; type=&quot;1&quot;&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: #333333; line-height: normal; margin-bottom: 0in; mso-list: l2 level1 lfo9; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Filtration example; get all active
     users: /users?active=true&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: #333333; line-height: normal; margin-bottom: 0in; mso-list: l2 level1 lfo9; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Pagination example; get page 5 where
     page size is 10: /users?pageId=5&amp;amp;pageSize=10&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 10.0pt; margin: 10pt 0in 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 22:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Use (&amp;amp;) to separate query parameters&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 10.0pt; margin: 10pt 0in 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 23:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Apply one of the following versioning identification
strategies:&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ol start=&quot;1&quot; style=&quot;margin-top: 0in;&quot; type=&quot;1&quot;&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: #333333; line-height: normal; margin-bottom: 0in; mso-list: l26 level1 lfo10; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;URI Components
     (preferred option); before the resource (e.g., /v2/users) or after the
     resource (e.g., /users/v2).&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://patterns.arcitura.com/service-api-patterns/fundamental-service-api-patterns/endpoint-redirection&quot;&gt;&lt;span style=&quot;background: white; color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background: white; color: #1155cc;&quot;&gt;Endpoint Redirection&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background: white;&quot;&gt; pattern can be used to redirect consumers to the new version
     endpoint&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: #333333; line-height: normal; margin-bottom: 0in; mso-list: l26 level1 lfo10; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Custom HTTP
     header. For example: API-version: 1&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: #333333; line-height: normal; margin-bottom: 0in; mso-list: l26 level1 lfo10; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Request
     parameter; e.g., users?v=1&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 24:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Avoid introducing new media types for each
version because it may reduce the API interoperability. The following examples
are not recommended:&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ol start=&quot;1&quot; style=&quot;margin-top: 0in;&quot; type=&quot;1&quot;&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: #333333; line-height: normal; margin-bottom: 0in; mso-list: l18 level1 lfo11; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;application/json;v1&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: #333333; line-height: normal; margin-bottom: 0in; mso-list: l18 level1 lfo11; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;application/vnd.usr+json;v1&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; id=&quot;Rule25&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 25: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Apply the following techniques to minimize the impact on the
consumer in case of backward incompatible changes:&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ol start=&quot;1&quot; style=&quot;margin-top: 0in;&quot; type=&quot;1&quot;&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; margin-top: 12pt; mso-list: l19 level1 lfo12; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Introduce a
     new version for the new changes&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l19 level1 lfo12; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Introduce&lt;a href=&quot;https://patterns.arcitura.com/service-api-patterns/fundamental-service-api-patterns/service-api-proxy&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1155cc;&quot;&gt;Service API proxy&lt;/span&gt;&lt;/a&gt;
     design pattern for existing customers. API proxy retains the original API
     and contains logic to accommodate the changes.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l19 level1 lfo12; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;In case of endpoint change,
     apply&lt;a href=&quot;https://patterns.arcitura.com/service-api-patterns/fundamental-service-api-patterns/endpoint-redirection&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1155cc;&quot;&gt;Endpoint
     Redirection&lt;/span&gt;&lt;/a&gt; design pattern using &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Location &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;header
     to redirect the consumer to the new endpoint. In this case, the server
     must return status code (301 Moved Permanently)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l19 level1 lfo12; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Apply&lt;a href=&quot;https://patterns.arcitura.com/service-api-patterns/termination-notification&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1155cc;&quot;&gt;Termination
     Notification&lt;/span&gt;&lt;/a&gt; design pattern to announce version has been
     deprecated and announce the date of old version retirement&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l19 level1 lfo12; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Build change log to track the
     versions and changes applied in each version&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 12pt; mso-list: l19 level1 lfo12; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Once
     the old service is switched service off, server should return status code
     (410 “Gone”)&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 6.0pt; margin-left: 0in; margin-right: 0in; margin-top: .25in; margin: 0.25in 0in 6pt; mso-outline-level: 2;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; font-size: 16pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Generic rules for Data Models&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 18pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 26:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; You may support more than one data format, but make sure to
keep JSON as your primary and default format&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 27:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; If multiple formats are supported, allow consumers to
negotiate for a given format using &lt;/span&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Accept&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; header&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 28:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Give meaningful entities and fields names and try to use
standard vocabulary by consulting the following standards &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://schema.org/&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt;&quot;&gt;schema.org&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://tools.ietf.org/html/rfc7946&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt;&quot;&gt;GeoJSON&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://microformats.org/wiki/Main_Page&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt;&quot;&gt;Microformats wiki&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://dublincore.org/&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt;&quot;&gt;Dublin
Core&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://www.w3.org/TR/activitystreams-vocabulary/&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt;&quot;&gt;Activity
Vocabulary&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;http://xmlns.com/foaf/spec/&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt;&quot;&gt;FOAF&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 29:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Define a schema for the data model (JSON Schema or XML Schema)
and &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Assign the right data type
and don’t assign string data type for everything unless it is required. In case
of JSON, describe your API using Open API&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Specs and use $ref to
include data models schemas&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 30:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Fields names must be camel-cased started with a lower case
“givenName”&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 31:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Fields names must start and end with a char&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 32:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Fields names must use only ASCII alphanumeric characters&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 33:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;make sure to reduce the
quantity and restrictiveness of validation logic embedded in the API and keep
them generic. Detailed validations in the API can make it coupled to the
underlying implementation and accordingly it will be always eligible for change
whenever the underlying implementation is changed. See &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://patterns.arcitura.com/service-api-patterns/validation-abstraction&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt;&quot;&gt;Validation
Abstraction&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; design pattern for more
details.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 34:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Use standards for fields values. Use &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://www.iso.org/iso-3166-country-codes.html&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt;&quot;&gt;ISO3166 &lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;for countries, &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/ISO_4217&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt;&quot;&gt;ISO4217 &lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;for currencies, &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://tools.ietf.org/html/rfc3339&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt;&quot;&gt;RFC3339 &lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;for dates and times formats, etc.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 35:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; In case you have created a custom list of media types
(although not recommended), your schema must be assigned one of the predefined
media types. For example&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ol start=&quot;1&quot; style=&quot;margin-top: 0in;&quot; type=&quot;1&quot;&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: #333333; line-height: normal; margin-bottom: 0in; mso-list: l10 level1 lfo13; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;User JSON
     schema can be assigned vnd.user+json&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: #333333; line-height: normal; margin-bottom: 0in; mso-list: l10 level1 lfo13; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;User XML
     schema can be assigned vnd.user+xml&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10.0pt; margin-left: 0in; margin-right: 0in; margin-top: 10.0pt; margin: 10pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule
36:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Avoid encoding binary data
within the data models using base64. instead , use:&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ol start=&quot;1&quot; style=&quot;margin-top: 0in;&quot; type=&quot;1&quot;&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: #333333; line-height: normal; margin-bottom: 0in; margin-top: 10pt; mso-list: l0 level1 lfo14; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Multipart media types&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: #333333; line-height: normal; margin-bottom: 10pt; mso-list: l0 level1 lfo14; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Separate links to fetch the binary data&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10.0pt; margin-left: 0in; margin-right: 0in; margin-top: 10.0pt; margin: 10pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule
37:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Make sure to support
hypermedias in the representations for the following purposes&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ol start=&quot;1&quot; style=&quot;margin-top: 0in;&quot; type=&quot;1&quot;&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; margin-top: 10pt; mso-list: l27 level1 lfo15; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;To link entities/resources together For &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://patterns.arcitura.com/service-api-patterns/entity-linking&quot;&gt;&lt;span style=&quot;color: #1155cc;&quot;&gt;Entity Linking&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; purposes (e.g., related, self, parent,
     author, subsection, etc.)&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: #333333; line-height: normal; margin-bottom: 0in; mso-list: l27 level1 lfo15; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;To support the
     navigation for collection pages (e.g., previous, next, first, last)&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: #333333; line-height: normal; margin-bottom: 0in; mso-list: l27 level1 lfo15; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;To support the
     move between workflow activities (e.g., start, edit, next, previous, etc.)&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: #333333; line-height: normal; margin-bottom: 10pt; mso-list: l27 level1 lfo15; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;To support the retrieval for binary data (in case
     multipart media types are not supported)&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 38:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Build standard schema(s) using supported data formats (JSON,
XML, etc.) for Hypermedias details. Below is a recommended format:&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;“href”: “URI or URI Template for linked
entity”,&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;“rel”: “URI used to identify the relationship
type between this entity and linked entity e.g., parent, child, next, previous,
etc.”&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 39:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;For a list of standard
relationship types, refer to&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://tools.ietf.org/html/rfc8288&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; font-size: 11pt;&quot;&gt; &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt;&quot;&gt;Web Linking&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; standard and&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://www.iana.org/assignments/link-relations/link-relations.xhtml&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; font-size: 11pt;&quot;&gt; &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt;&quot;&gt;Link
Relations&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://tools.ietf.org/html/rfc5005&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt;&quot;&gt;RFC5005&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://tools.ietf.org/html/rfc4685&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt;&quot;&gt;RFC4685&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://tools.ietf.org/html/rfc5829&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt;&quot;&gt;RFC5829&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://microformats.org/wiki/Main_Page&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt;&quot;&gt;Microformats Wiki &lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;for list of registered relations types and make sure to use
lowercase characters for all relation types&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 40:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; In each representation
include a self link as follows.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 1.0in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;“id”: 121,&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 1.0in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;“userName”: “H1212”,&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 1.0in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;“firstName”:”Haitham”,&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 1.0in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;“links”: [&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 1.5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 1.5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;mso-tab-count: 1;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;“href”:
“/users/121”,&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 1.5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;mso-tab-count: 1;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;“rel”:
“self”&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 1.5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 1.0in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 41:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Include the link in a consistent manner within your data
model. Below “links” is a recommended approach to support entity linking:&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 1.0in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;“userName”: “H1212”,&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 1.0in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;“firstName”:”Haitham”,&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 1.0in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;“links”: [&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 1.5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 1.5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;mso-tab-count: 1;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;“href”:
“/users/121”,&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 1.5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;mso-tab-count: 1;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;“rel”:
“self”&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 1.5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;},&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 1.5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 1.5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;mso-tab-count: 1;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;“href”:
“/users/12”,&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 1.5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;mso-tab-count: 1;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;“rel”:
“parent”&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 1.5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;},&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 1.5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 1.5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;mso-tab-count: 1;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;“href”:
“/users/121/addresses/3”,&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 1.5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;mso-tab-count: 1;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;“rel”:
“related”&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 1.5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 1.0in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 42:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Avoid removing the links or changing the link relation type
because that is not a backward compatible change and API consumers will be
affected.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 43:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Collections models must provide self link for collection resource
itself&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 44:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Collections entries must also include self links pointing to the
individual resources. This will allow the client to get more details about the
individual resources&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 45:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Define standard structure for Collections. For example:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;span style=&quot;mso-tab-count: 1;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;“users”: [],&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;span style=&quot;mso-tab-count: 1;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;“links”: []&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 46:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Collections should support pagination by providing the total
number of pages, link to the next page and link to the previous page and
preferable two links for the first and last pages. The following is a response
for &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;/users?pageId=5&amp;amp;pageSize=10&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 1.0in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;“users”: [&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 1.0in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;span style=&quot;mso-tab-count: 1;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 1.0in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;span style=&quot;mso-tab-count: 2;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;“userName”:
“H1212”,&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 2.0in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 2in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;“firstName”:”Haitham”,&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 2.0in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 2in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;“links”: [&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 2.5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 2.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 2.5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 2.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;mso-tab-count: 1;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;“href”:
“/users/121”,&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 2.5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 2.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;mso-tab-count: 1;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;“rel”:
“self”&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 2.5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 2.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;},&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 2.5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 2.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 2.5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 2.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;mso-tab-count: 1;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;“href”:
“/users/12”,&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 2.5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 2.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;mso-tab-count: 1;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;“rel”:
“parent”&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 2.5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 2.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;},&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 2.5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 2.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 2.5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 2.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;mso-tab-count: 1;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;“href”:
“/users/121/addresses/3”,&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 2.5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 2.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;mso-tab-count: 1;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;“rel”:
“related”&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 2.5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 2.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 1.5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1.5in; text-indent: 0.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 1.5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 1.0in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;],&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 1.0in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;“links”: [&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 1.5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 1.5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;mso-tab-count: 1;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;“href”:
“/users?pageId=5&amp;amp;pageSize=10”,&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 1.5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;mso-tab-count: 1;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;“rel”:
“self”&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 1.5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;},&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 1.5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 1.5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;mso-tab-count: 1;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;“href”:
“/users?pageId=6&amp;amp;pageSize=10”,&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 1.5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;mso-tab-count: 1;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;“rel”:
“next”&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 1.5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;},&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 1.5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 1.5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;mso-tab-count: 1;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;“href”:
“/users?pageId=4&amp;amp;pageSize=10”,&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 1.5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;mso-tab-count: 1;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;“rel”:
“previous”&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 1.5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 1.0in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 47: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Build standard schema(s) using supported data formats (JSON, XML,
etc) for error reporting and use them across all the APIs for failure
conditions only.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ol start=&quot;1&quot; style=&quot;margin-top: 0in;&quot; type=&quot;1&quot;&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; margin-top: 12pt; mso-list: l8 level1 lfo16; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;One option
     is to use the standard error details schema proposed in&lt;a href=&quot;https://tools.ietf.org/html/rfc7807&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1155cc;&quot;&gt;RFC7807&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 12pt; mso-list: l8 level1 lfo16; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Another
     option is to build your own custom structure and standardize it across all
     the APIs (e.g., note that the below structure supports reporting multiple
     errors):&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;{ “errors”: [{&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;mso-tab-count: 1;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;“code”: “long-form
error code e.g., name_too_long”,&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;mso-tab-count: 1;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;“busMsg”:
“Describe the error from business point of view and value should follow the
same language requested using &lt;span style=&quot;background: aqua;&quot;&gt;Accept-Language&lt;/span&gt;
header. e.g., Name provided is longer than 16 char”,&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;mso-tab-count: 1;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;“tecMsg”:
“Describe the error from technical point of view. E.g., Name length must not be
greater than 16”,&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;mso-tab-count: 1;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;“note”: “Note
for the consumer developer. E.g., Please refer to following URL for more
details: http://apidoc.com”&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;mso-tab-count: 1;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;“recommendation”:
“Optional field for a recommendation. E.g., minimize the value length and
submit again”&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;]}&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 48: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;return longer-form response codes in the error report payload (see
previous rule)&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 6.0pt; margin-left: 0in; margin-right: 0in; margin-top: .25in; margin: 0.25in 0in 6pt; mso-outline-level: 2;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; font-size: 16pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Generic rules for Media-Types&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 18pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 49:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Avoid Application-specific media type (e.g.,
application/vnd.user+json). &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Defining custom media
types reduces the API interoperability.&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; But
if you had to define custom media types, make sure to document them and to map
them with the predefined data models as part of the Contract-First design
approach (see &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://raikblog.blogspot.com/2021/02/consolidated-design-rules-and.html&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt;&quot;&gt;previous
thread&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; for more details). Most
importantly, avoid introducing new media types for each version.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 50:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; You may support more than one data format, but make sure to
keep JSON as your primary and default format&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 51:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Allow consumers to negotiate for a given format using Accept
header&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10.0pt; margin-left: 0in; margin-right: 0in; margin-top: 10.0pt; margin: 10pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule
52:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Avoid encoding binary data
with the data models using base64. instead , use multipart media types&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 53:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; UTF-8 must be the only charset for request and response payload.
UTF-8 is already the default encoding for both media types; application/xml and
application/json and that should never be changed.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 6.0pt; margin-left: 0in; margin-right: 0in; margin-top: .25in; margin: 0.25in 0in 6pt; mso-outline-level: 2;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; font-size: 16pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Generic rules for Meta data&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 18pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 54: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Meta-data should be transferred using HTTP headers only&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 55: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;HTTP headers should be used for meta-data only and shouldn’t be
used for business-related details&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 56: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Return &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Content-Length&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;
header must be used in the response&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 57:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; If the request has a
payload but it doesn’t include &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Content-Type &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;header. Return status code (400 Bad Request).&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 58:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; If the request has
unsupported media-type defined in &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Content-Type &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;header, return status code (415 Unsupported Media Type)&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 59:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; If the request has a
body but it doesn’t match the media-type defined in &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Content-Type &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;header, return status
code (400 Bad Request)&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 60:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; If the request has a
body and it matches the media-type defined in &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Content-Type
&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;header, but the message structure or values are
invalid, return status code (400 Bad Request)&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 61:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; In response, return the payload using the same format used in the
request payload&amp;nbsp; (e.g., request &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Content-Type&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;) . If the request has no payload, use the &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Accept &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;header to allow the
consumer to negotiate for his preferred data format (e.g, JSON, XML, etc). If
no Accept header is provided in the request, use the default data format (e.g.,
JSON).&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 62: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Content-Type&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; header must be used in
the response and must match the response body payload (for example: don’t
return application/json while the response payload is XML-based)&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 63: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Accept-Language&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; header must be
supported to allow the consumers to request the business details in a specific
language if multilingual resources are maintained&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 64:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; if &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Accept-Language&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;
header is not provided return the response using the default language (e.g.,
en)&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 65:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Encourage your consumer to use &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Content-Encoding&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; header in the request to compress the request payload&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 66: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Support &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Accept-Encoding&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;
header to allow the consumers to get a compressed response payload
compression.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 67: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Return &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Content-Encoding&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;
header in the response to inform the consumer whether the response payload is
compressed or not&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 68:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Encourage your consumers to send the &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Date &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;header and the API must
always return the &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Date &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;header in the response
in all cases; success or failure.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 69: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Support &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Authorization&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;
header for OAuth access token and make sure to validate it with the OAuth
provider&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ol start=&quot;1&quot; style=&quot;margin-top: 0in;&quot; type=&quot;1&quot;&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; margin-top: 12pt; mso-list: l5 level1 lfo17; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Make sure
     the access token is not expired&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 12pt; mso-list: l5 level1 lfo17; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Make
     sure the access token is permitted to perform the requested HTTP method on
     the requested resource&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 70: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;If consumer didn’t provide or provided invalid credentials, it is
recommended to return &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;WWW-Authenticate&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;
header to tell the client what kind of authentication is expected&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ol start=&quot;1&quot; style=&quot;margin-top: 0in;&quot; type=&quot;1&quot;&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 12pt; margin-top: 12pt; mso-list: l4 level1 lfo18; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;This header must accompany with
     HTTP Status code (401 Unauthorized)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 71: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Return &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Retry-After&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; header in the response
if the consumer exceeded the maximum limit allowed.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ol start=&quot;1&quot; style=&quot;margin-top: 0in;&quot; type=&quot;1&quot;&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; margin-top: 12pt; mso-list: l9 level1 lfo19; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;This header
     is usually accompany with HTTP status code&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span id=&quot;docs-internal-guid-c59f4c5b-7fff-66e3-24d2-d250400a58a2&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;(429 Too Many Requests)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 12pt; mso-list: l9 level1 lfo19; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;It
     is also recommended to return the following custom headers in as well &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;X-RateLimit-Limit,
     X-RateLimit-Remaining, X-RateLimit-Reset&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 72: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;If consumer requested unsupported method, return HTTP Status code
(405 Method Not Allowed) and return &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Allow &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Header to inform the consumer with the supported methods&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 73: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;If &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;User-Agent&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; header is provided, use
it for logging and statistical purposes only&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 74:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Use &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Link &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;header to provide a URL
for a human-readable documentation describing the response payload structure.
In case of failure, return, in the Link&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;header, a link to a human-readable document that informs the
client how to correct or debug the error. Profile is a standard link relation
as per RFC6906&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;span style=&quot;mso-tab-count: 1;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Link: &amp;lt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://dev.twitter.com/docs&quot;&gt;&lt;span style=&quot;color: #1155cc; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11pt;&quot;&gt;https://dev.twitter.com/docs&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;gt;;rel=”profile”&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 75: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;If you want to define a
new custom header, do not use X- for “extension” as prefix.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ol start=&quot;1&quot; style=&quot;margin-top: 0in;&quot; type=&quot;1&quot;&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; margin-top: 12pt; mso-list: l1 level1 lfo20; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Using X- was
     an old recommendation and it is not valid any more&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 76: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Return&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; X-OAuth-Scopes&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; header (inherited from
GitHub APIs) to list the scopes for which a token has been authorized&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 77: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Return&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; X-Accepted-OAuth-Scopes&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; header (inherited from
GitHub APIs) to list the scopes that the action requires&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 78: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Return &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;RateLimit-Limit&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; to inform the consumer
about the maximum rate allowed&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 79: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Return &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;RateLimit-Remaining&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; to inform the consumer
about the remaining available requests before reaching the max limit&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 80: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Return &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;RateLimit-Reset&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; to inform the consumer
when the current limit window will be reset&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; id=&quot;Rule81&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 81: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Use &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Signature&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; header to sign the
request and response payload. The value should consist of the signature
timestamp (to prevent replay attacks) and the signature value. Here is an
example:&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 1.0in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Signature: t= 1613907779,
v=erwewrwrwerwerwerwrwerwwfsdfsd123wqdad31=&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 82: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Don’t use HTTP headers to customize the HTTP methods behavior&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 6.0pt; margin-left: 0in; margin-right: 0in; margin-top: .25in; margin: 0.25in 0in 6pt; mso-outline-level: 2;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; font-size: 16pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Generic rules for HTTP methods usage&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 18pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 83:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Avoid using nonstandard custom HTTP methods&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 84: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Don’t use &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;HEAD&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Http method. It is useless&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 85:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Don’t use &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;TRACE&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; and &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;CONNECT&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;, they are only
applicable for proxies&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 86: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;LINK&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; and &lt;/span&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;UNLINK&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; methods are not yet
standardized and you shouldn&#39;t use them&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 87:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Don’t use WebDAV methods as they are not widely supported.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 88: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Use &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;span style=&quot;color: #1155cc; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11pt;&quot;&gt;GET &lt;/span&gt;&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;for reading purposes or for performing safe non-CRUD actions
(e.g., validate, calculate, search, compare, etc.)&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ol start=&quot;1&quot; style=&quot;margin-top: 0in;&quot; type=&quot;1&quot;&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 12pt; margin-top: 12pt; mso-list: l31 level1 lfo21; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Safe actions means no updates
     on the resources states will happen when calling the service.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 89: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Use &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;span style=&quot;color: #1155cc; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11pt;&quot;&gt;POST &lt;/span&gt;&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;to create new parent objects or to execute&lt;b&gt; &lt;/b&gt;unsafe non-CRUD
operations (such as &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;lock,
unlock, merge, copy, duplicate, process, etc.&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;).
Such activities are sometimes called tasks and the resources handling tasks are
called controllers or processors.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 90: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Use &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;span style=&quot;color: #1155cc; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11pt;&quot;&gt;PUT &lt;/span&gt;&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;to update an existing object or insert a sub-object for an
existing parent object&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 91: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Use &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;span style=&quot;color: #1155cc; font-family: &amp;quot;Courier New&amp;quot;; font-size: x-small;&quot;&gt;DELETE &lt;/span&gt;&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;to delete an existing object&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 92: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Use &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: #1155cc; font-size: x-small;&quot;&gt;PATCH &lt;/span&gt;&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;to Modify part of a resource.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 93: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Use &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;span style=&quot;color: #1155cc; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11pt;&quot;&gt;OPTIONS &lt;/span&gt;&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;to retrieve resource’s allowed methods. It is good to support it
although it is not popularly used&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 94:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Use each HTTP method as per its semantic specified in HTTP specs.
Don’t try to override HTTP method behavior.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 6.0pt; margin-left: 0in; margin-right: 0in; margin-top: .25in; margin: 0.25in 0in 6pt; mso-outline-level: 2;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; font-size: 16pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Generic rules for HTTP Status Codes&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 18pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 95: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Don’t use HTTP status codes (301 Found)&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 96: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Return Http Status code (429 Too Many Requests) if the client
exceed the maximum rate limit allowed&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ol start=&quot;1&quot; style=&quot;margin-top: 0in;&quot; type=&quot;1&quot;&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; margin-top: 12pt; mso-list: l30 level1 lfo22; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;In this case
     it is recommended to return Retry-After header with a value that informs
     the consumer when he should try again&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l30 level1 lfo22; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;It is also recommended to
     return &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;RateLimit-Limit&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; to inform the consumer about
     the maximum rate allowed&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l30 level1 lfo22; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;And&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;RateLimit-Remaining&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;
     to inform the consumer about the remaining available requests before
     reaching the max limit&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l30 level1 lfo22; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;And return &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;RateLimit-Reset&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;
     to inform the consumer when the current limit window will be reset&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 97: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Return Http Status code (500 Internal Server Error) if client did
everything correct but the server could not handle the request because of an
internal error. Don’t use 500 if it is a client fault&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 98: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;For 4xx errors, it is recommended to return an error payload in
the response body to describe the client mistake&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 99: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;For 5xx errors, it is recommended to return an error payload in
the response body to tell the client about the issue and if there is any
recommendations (e.g., ask client to retry again later)&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 6.0pt; margin-left: 0in; margin-right: 0in; margin-top: 20.0pt; margin: 20pt 0in 6pt; mso-outline-level: 1;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; font-size: 20pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-font-kerning: 18.0pt;&quot;&gt;GET HTTP Method Rules&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 24pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-font-kerning: 18.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 100: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Use &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;GET &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;for retrieval only and
it should be always safe and idempotent. Resource state after sending the GET
request must be exactly the same as the resource state before sending the GET
request.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 101:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Don’t use get for
unsafe operations and in case of network failures, consumers should be able to
resubmit the request safely.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 102:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Use Get to perform safe
non-CRUD actions (e.g., validate, calculate, search, compare, etc.) and use
query parameters to pass inputs. For such activities, &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;use a verb as a sub-source. &lt;/span&gt;&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;/users/compare&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 103:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Don’t use GET on the
same URI to perform multiple operations. The below examples are not allowed
(the below technique is called Tunneling which is not recommended at all)&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;#Request 1&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;GET /users&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Content-Type: application/json&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;{op=”validate”, users=[]}&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;#Request 2&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;GET /users&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Content-Type: application/json&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;{op=”calc”, users=[]}&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 104: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;If consumer didn’t provide or provided invalid or expired
credentials (In &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Authorization&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;
header), return HTTP Status code (401 Unauthorized) and it is recommended to
return &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;WWW-Authenticate&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;
header to tell the client what kind of authentication is expected&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 105: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;If consumer provided un-authorized credentials, return Http status
code (403 Forbidden)&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 106: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;if the requested resource (collection or object) doesn’t exist and
the server doesn’t know if the resource was there before or not, return Http
Status code (404 Not Found)&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 107: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;if the requested resource doesn’t exist and the server knows that
the resource was there before, return Http Status code (405 Gone). This is
applicable in case an old version of API has been removed and the server
doesn’t know if there is a newer version&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 108:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; if the requested object resource doesn’t exist and the server knows
it was there before, return (405 Gone). This is applicable in this case a
logical delete mechanism is implemented at the level of the object.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 109: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;if the requested resource has moved to a different location,
return Http Status code (301 Moved Permanently) with &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Location&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; header value pointing
to the new URI. This is applicable in case a client is requesting an old
version of the API and the server knows where the new version is (see &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;#Rule25&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt;&quot;&gt;Rule#25&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;).&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 110:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; If the request has a
payload but it doesn’t include &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Content-Type&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; header. Return status code (400 Bad Request).&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 111:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; If the request has
unsupported media-type defined in &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Content-Type &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;header, return status code (415 Unsupported Media Type)&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 112:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; If the request has a
body but it doesn’t match the media-type defined in &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Content-Type &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;header, return status
code (400 Bad Request)&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 113:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; If the request has a
body and it matches the media-type defined in &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Content-Type
&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;header, but the message structure or values are
invalid, return status code (400 Bad Request)&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 114:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; In response, return the payload using the same format used in the
request payload&amp;nbsp; (e.g., request &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Content-Type&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;) . If the request has no payload, use the &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Accept &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;header to allow the
consumer to negotiate for his preferred data format (e.g, JSON, XML, etc). If
no Accept header is provided in the request, use the default data format (e.g.,
JSON).&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 115:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; if the client sent Accept header with a media type that can’t be
supported by the server, return (406 Not Acceptable)&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 116:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; In case of abnormal failures, return HTTP status code 5XX&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 117:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; In case of errors or failure, return error report in the response
body describing the issue.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 118: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Content-Type&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; header must be used in
the response and must match the response body payload (for example: don’t
return application/json while the response payload is XML-based)&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 10.0pt; margin: 10pt 0in 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;119&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;
Query parameters can be used for filtration, sorting and pagination:&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ol start=&quot;1&quot; style=&quot;margin-top: 0in;&quot; type=&quot;1&quot;&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: #333333; line-height: normal; margin-bottom: 0in; mso-list: l12 level1 lfo23; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Filtration
     example; get all active users: /users?active=true&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: #333333; line-height: normal; margin-bottom: 0in; mso-list: l12 level1 lfo23; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Pagination
     example; get page 5 where page size is 10: /users?pageId=5&amp;amp;pageSize=10&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10.0pt; margin-left: 0in; margin-right: 0in; margin-top: 10.0pt; margin: 10pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 120:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Return status code (200 OK) for a success response of GET request&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 121: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Don’t use Status code (200 OK) and there is an error in the
response body&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 122:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Avoid range requests using &lt;span style=&quot;font-family: courier;&quot;&gt;Range &lt;/span&gt;Header for implementing pagination (e.g., &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Range: 1-100&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 123:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Return Last-Modified
header to inform the consumer when was the last update of the resource&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 124:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Return ETag header to
inform the consumer about the latest version of the resource. ETag can be
generated using MD5 hash value&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 125:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Allow conditional GET
request by supporting If-Modified-Since and If-None-Match (if provided by the
client):&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ol start=&quot;1&quot; style=&quot;margin-top: 0in;&quot; type=&quot;1&quot;&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l22 level1 lfo24; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Client propagate
     If-Modified-Since with previously retrieved Last-Modified Or Client propagate
     If-None-Match with previously retrieved ETag&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l22 level1 lfo24; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Server validates the value, if
     condition is true, that means the resource has been updated and server
     must return fresh representation for the resource with HTTP Status Code
     (200 OK)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 10pt; mso-list: l22 level1 lfo24; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;If
     condition is false, that means the resource is not updated and server must
     return HTTP Status code (304 Not Modified)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 126:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; If response integrity is important, make sure to sign the
response payload (see &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;#Rule81&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt;&quot;&gt;Rule#81&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 127: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Allow caching for successful GET response using all of the below
headers in the response:&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ol start=&quot;1&quot; style=&quot;margin-top: 0in;&quot; type=&quot;1&quot;&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; margin-top: 12pt; mso-list: l33 level1 lfo25; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;For Legacy
     HTTP1.0 use &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Date:&amp;lt;start-date&amp;gt;&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; and &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Expires:&amp;lt;cache-end-date&amp;gt;&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;
     headers&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 12pt; mso-list: l33 level1 lfo25; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;For
     HTTP1.1 and above use &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Cache-Control:
     max-age=&amp;lt;Seconds&amp;gt;, must-revalidate&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 128:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; For critical data that are not supposed to be cached, disallow
caching using all of the below headers in the response:&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ol start=&quot;1&quot; style=&quot;margin-top: 0in;&quot; type=&quot;1&quot;&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; margin-top: 12pt; mso-list: l29 level1 lfo26; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;[For Legacy
     HTTP1.0 use &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Pragma: no-cache&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; and &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Expires:0&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;
     headers&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 12pt; mso-list: l29 level1 lfo26; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;For
     HTTP1.1 and above use &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Cache-Control: no-cache&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 6.0pt; margin-left: 0in; margin-right: 0in; margin-top: 20.0pt; margin: 20pt 0in 6pt; mso-outline-level: 1;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; font-size: 20pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-font-kerning: 18.0pt;&quot;&gt;OPTIONS HTTP Method
Rules&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 24pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-font-kerning: 18.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 129: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Use &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;OPTIONS &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;to retrieve resource’s
allowed methods. It is good to support it although it is not popularly used.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 130: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Use &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;OPTIONS &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;for retrieval only and
it should be always safe and idempotent. Resource state after sending the
OPTIONS request must be exactly the same as the resource state before sending
the OPTIONS request.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 131: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Return &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Allow&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; header with a list of
supported http methods in the response of &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;OPTIONS&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; request. if we sent the following request, we will get the
following HTTP header in the response: &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;OPTIONS /users&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: .5in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in 12pt 0.5in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Allow: GET, HEAD, PUT,
POST, DELETE&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 132:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; When
a resource supports the &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;PATCH&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; method, add an &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Accept-Patch &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;header listing the media types supported for &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;PATCH &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;requests:&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;#Request&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;OPTIONS /customers/1&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;#Response&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;HTTP/1.1 204 No Content&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Allow: POST, GET, PATCH&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Accept-Patch: application/json&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 133:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Add
a Link header in the response containing a human-readable document that
describes the resource&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 134:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;
PATCH request and response should not contain a body&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;b&gt;Rule 135:&lt;/b&gt; Return HTTP Status Code (204 No Content)
in case of success&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 136: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;if the requested resource (collection or object) doesn’t exist and
the server doesn’t know if the resource was there before or not, return Http
Status code (404 Not Found)&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 137: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;if the requested resource doesn’t exist and the server knows that
the resource was there before, return Http Status code (405 Gone). This is
applicable in case an old version of API has been removed and the server
doesn’t know if there is a newer version&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 138:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; if the requested object resource doesn’t exist and the server
knows it was there before, return (405 Gone). This is applicable in this case a
logical delete mechanism is implemented at the level of the object.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 139: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;if the requested resource has moved to a different location,
return Http Status code (301 Moved Permanently) with &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Location&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; header value pointing
to the new URI. This is applicable in case a client is requesting an old
version of the API and the server knows where the new version is (see &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;#Rule25&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt;&quot;&gt;Rule#25&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;).&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 140:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; In case of abnormal failures, return HTTP status code 5XX&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 141:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; In case of errors or failure, return error report in the response
body describing the issue.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 6.0pt; margin-left: 0in; margin-right: 0in; margin-top: 20.0pt; margin: 20pt 0in 6pt; mso-outline-level: 1;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; font-size: 20pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-font-kerning: 18.0pt;&quot;&gt;POST HTTP Method Rules&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 24pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-font-kerning: 18.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 142: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Use &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;POST &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;to create new parent
objects. In the below example, a new user will be created:&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10.0pt; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 10pt 0.5in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;POST /users&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 143:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Use &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;POST &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;to execute&lt;b&gt; &lt;/b&gt;unsafe
non-CRUD operations (such as &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;lock,
unlock, merge, copy, duplicate, process, etc.&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;).
Such activities are sometimes called tasks and the resources handling tasks are
called controllers or processors. For such tasks, &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;background: white; color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;use a verb as a sub-source.&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;. For example:&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ol start=&quot;1&quot; style=&quot;margin-top: 0in;&quot; type=&quot;1&quot;&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; margin-top: 12pt; mso-list: l15 level1 lfo27; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;To merge the
     addresses of user Id 121 use: &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;/users/121/addresses/merge&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 12pt; mso-list: l15 level1 lfo27; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;To
     lock user with id 121 use: &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;POST /users/121/lock&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 144:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Don’t use POST on the
same URI to perform multiple operations. The below examples are not allowed
(the below technique is called Tunneling which is not recommended at all)&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;#Request 1&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;POST /users&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Content-Type: application/json&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;{op=”async”, users=[]}&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;#Request 2&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;POST /users&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Content-Type: application/json&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;{op=”lock”, users=[]}&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 145: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;If consumer didn’t provide or provided invalid or expired
credentials (In &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Authorization&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;
header), return HTTP Status code (401 Unauthorized) and it is recommended to
return &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;WWW-Authenticate&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;
header to tell the client what kind of authentication is expected&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 146: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;If consumer provided un-authorized credentials, return Http status
code (403 Forbidden)&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 147: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;if the requested collection resource doesn’t exist and the server
doesn’t know if the resource was there before or not, return Http Status code
(404 Not Found)&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 148: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;if the requested collection resource doesn’t exist and the server
knows that the resource was there before, return Http Status code (405 Gone).
This is applicable in case an old version of API has been removed and the
server doesn’t know if there is a newer version or not&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 149: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;if the requested collection resource has moved to a different
location, return Http Status code (301 Moved Permanently) with &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Location&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; header value pointing
to the new URI. This is applicable in case a client is requesting an old
version of the API and the server knows where the new version is (see &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;#Rule25&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt;&quot;&gt;Rule#25&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;).&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 150:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; If the request has a
payload but it doesn’t include &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Content-Type&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; header. Return status code (400 Bad Request).&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 151:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; If the request has
unsupported media-type defined in &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Content-Type &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;header, return status code (415 Unsupported Media Type)&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 152:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; If the request has a
body but it doesn’t match the media-type defined in &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Content-Type &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;header, return status
code (400 Bad Request)&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 153:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; If the request has a
body and it matches the media-type defined in &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Content-Type
&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;header, but the message structure or values are
invalid, return status code (400 Bad Request)&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 154:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; if the client sent Accept header with a media type that can’t be
supported by the server, return (406 Not Acceptable)&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 155:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; In case of abnormal failures, return HTTP status code 5XX&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 156:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; In case of errors or failure, return error report in the response
body describing the issue.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 157: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Content-Type&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; header must be used in
the response and must match the response body payload (for example: don’t
return application/json while the response payload is XML-based)&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 158:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; After creating the resource, return HTTP response code (201
Created) and use one of the following headers:&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ol start=&quot;1&quot; style=&quot;margin-top: 0in;&quot; type=&quot;1&quot;&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; margin-top: 12pt; mso-list: l32 level1 lfo28; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Use &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Location&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;
     header pointing to the newly created object if the response payload is
     empty&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 12pt; mso-list: l32 level1 lfo28; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Use
     &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Content-Location&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; header pointing to the newly
     created object if the response payload contains the representation of the
     newly created resource. This will inform the client that the content can
     be also retrieved by calling this URI&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 159:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Avoid returning success
code with an error in the body.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 160:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Return Last-Modified
header for the newly created resource&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 161:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Return ETag header for
the newly created resource. ETag can be generated using MD5 hash value&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 162:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; For bulk creation
performed synchronously, return HTTP status code (200 OK) and return in the
response body a collection of the newly created URLs.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 163:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; For bulk posting
performed synchronously (for unsafe non-CRUD actions), return HTTP status code
(200 OK) and return in the response body a collection of the execution results.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 164:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; For long processing
activities (such as creating a huge bulk of objects), support async processing
by using a special purpose resource (lets call it &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;/async-tasks&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;). Upon receiving a POST
request, create a new resource of &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;/async-tasks&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; and return HTTP status code (202 Accepted) along with a &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Location &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;header that includes the
URL for the newly created /async-tasks object. For example:&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;span style=&quot;mso-tab-count: 1;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;#Request&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;POST /users/async-tasks&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;span style=&quot;mso-tab-count: 1;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;span style=&quot;mso-tab-count: 2;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;“Users”: []&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;span style=&quot;mso-tab-count: 1;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;#Response&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;HTTP/1.1 202 Accepted&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Content-Type: application/json&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Location: /users/async-tasks/1&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10.0pt; margin-left: 0in; margin-right: 0in; margin-top: 10.0pt; margin: 10pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 165:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; For Async processing /async-tasks resource must support GET
request (refer to &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://docs.google.com/document/d/13QKNFtPJDFX1qdUecRZH2WWogAO0Ao3x7CrWlCjMWS4/edit#heading=h.1cf65pj9yg52&quot;&gt;&lt;span style=&quot;color: #1155cc; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11pt;&quot;&gt;GET &lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;HTTP method rules for a full list of applicable rules) to allow
the consumer to inquire for the current state of the original request and
should return one of the following:&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ol start=&quot;1&quot; style=&quot;margin-top: 0in;&quot; type=&quot;1&quot;&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l14 level1 lfo29; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;For still processing state:
     Return HTTP status code (200 OK) with a response payload indicating that
     the request is still under processing&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l14 level1 lfo29; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;For successfully completed
     state: Return HTTP status code (303 See Other) and &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Location&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;
     header pointing for the creation results.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 10pt; mso-list: l14 level1 lfo29; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;For
     a failed processing state, Return HTTP status code (200 OK) with error
     report indicating what is the reason for the failure.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 166:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; If request integrity is important, ask your client to send the
signature in the header and make sure to validate it (see &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;#Rule81&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt;&quot;&gt;Rule#81&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;). If the signature is not provided or not valid. return HTTP
status code (403 Forbidden) along with an error report in the response body
describing the issue.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 6.0pt; margin-left: 0in; margin-right: 0in; margin-top: 20.0pt; margin: 20pt 0in 6pt; mso-outline-level: 1;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; font-size: 20pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-font-kerning: 18.0pt;&quot;&gt;PUT HTTP Method Rules&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 24pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-font-kerning: 18.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 167: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Use &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;PUT &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;to update an existing
object. Following example updates already exist user with id 121: &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;PUT /users/121&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 168:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; insert a sub-object for
an existing parent object. Following example inserts new address under existing
user id 121: &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;PUT /users/121/addresses&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 169: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;If consumer didn’t provide or provided invalid or expired
credentials (In &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Authorization&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;
header), return HTTP Status code (401 Unauthorized) and it is recommended to
return &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;WWW-Authenticate&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;
header to tell the client what kind of authentication is expected&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 170: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;If consumer provided un-authorized credentials, return Http status
code (403 Forbidden)&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 171: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;if the requested resource (collection or object) doesn’t exist and
the server doesn’t know if the resource was there before or not, return Http
Status code (404 Not Found)&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 172: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;if the requested resource doesn’t exist and the server knows that
the resource was there before, return Http Status code (405 Gone). This is
applicable in case an old version of API has been removed and the server
doesn’t know if there is a newer version&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 173:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; if the requested object resource doesn’t exist and the server
knows it was there before, return (405 Gone). This is applicable in this case a
logical delete mechanism is implemented at the level of the object.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 174: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;if the requested resource has moved to a different location,
return Http Status code (301 Moved Permanently) with &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Location&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; header value pointing
to the new URI. This is applicable in case a client is requesting an old version
of the API and the server knows where the new version is (see &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;#Rule25&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt;&quot;&gt;Rule#25&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;).&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 175:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; If the request has a payload but it doesn’t include &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Content-Type&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; header. Return status
code (400 Bad Request).&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 176:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; If the request has unsupported media-type defined in &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Content-Type &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;header, return status
code (415 Unsupported Media Type)&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 177:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; If the request has a body but it doesn’t match the media-type
defined in &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Content-Type &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;header,
return status code (400 Bad Request)&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 178:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; If the request has a body and it matches the media-type defined
in &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Content-Type &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;header, but the message
structure or values are invalid, return status code (400 Bad Request)&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 179:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; in case of abnormal failures, return HTTP status code 5XX&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 180:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; in case of errors or failure, return error report in the response
body describing the issue.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 181:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Return status code (204 No Content) for a success response and
don’t return a payload in the response body&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 182:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Avoid returning success
code with an error in the body.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 183:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Return Last-Modified header to inform the consumer the new last
update date time&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 184:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Return ETag header to inform the consumer about the latest
version of the resource. ETag can be generated using MD5 hash value&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 185:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Allow conditional
PUTrequest by supporting If-Unmodified-Since and If-Match headers to prevent
concurrent update conflicts:&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ol start=&quot;1&quot; style=&quot;margin-top: 0in;&quot; type=&quot;1&quot;&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l28 level1 lfo30; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Client can propagate
     If-Unmodified-Since with previously retrieved Last-Modified Or can
     propagate If-Match with previously retrieved ETag&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l28 level1 lfo30; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Server validates the value, if
     condition is true, that means the resource has not been updated and there
     is no conflict and server must return HTTP Status Code (204 No Content)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 10pt; mso-list: l28 level1 lfo30; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;If
     the condition is false, that means the resource is updated and there is a
     conflict. In this case, the server must return HTTP Status code (412
     Precondition Failed) along with the updated values of &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;ETag&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;
     and &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Last-Modified&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; headers&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 186:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; If request integrity is important, ask your client to send the
signature in the header and make sure to validate it (see &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;#Rule81&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt;&quot;&gt;Rule#81&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;). If the signature is not provided or not valid. return HTTP
status code (403 Forbidden) along with error report in the response body
describing the issue&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 6.0pt; margin-left: 0in; margin-right: 0in; margin-top: 20.0pt; margin: 20pt 0in 6pt; mso-outline-level: 1;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; font-size: 20pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-font-kerning: 18.0pt;&quot;&gt;DELETE HTTP Method Rules&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 24pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-font-kerning: 18.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 187: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Use &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;DELETE &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;to delete an existing
object. Following example deletes already exist user with id 121: &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;DELETE /users/121&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 188: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;If consumer didn’t provide or provided invalid or expired
credentials (In &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Authorization&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;
header), return HTTP Status code (401 Unauthorized) and it is recommended to
return &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;WWW-Authenticate&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;
header to tell the client what kind of authentication is expected&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 189: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;If consumer provided un-authorized credentials, return Http status
code (403 Forbidden)&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 190: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;if the requested resource (collection or object) doesn’t exist and
the server doesn’t know if the resource was there before or not, return Http
Status code (404 Not Found)&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 191: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;if the requested resource doesn’t exist and the server knows that
the resource was there before, return Http Status code (405 Gone). This is
applicable in case an old version of API has been removed and the server
doesn’t know if there is a newer version&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 192:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; if the requested object resource doesn’t exist and the server
knows it was there before, return (405 Gone). This is applicable in this case a
logical delete mechanism is implemented at the level of the object.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 193: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;if the requested resource has moved to a different location,
return Http Status code (301 Moved Permanently) with &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Location&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; header value pointing
to the new URI. This is applicable in case a client is requesting an old
version of the API and the server knows where the new version is (see &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;#Rule25&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt;&quot;&gt;Rule#25&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;).&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 194:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; If the request has a payload but it doesn’t include &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Content-Type&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; header. Return status
code (400 Bad Request).&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 195:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; If the request has unsupported media-type defined in &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Content-Type &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;header, return status
code (415 Unsupported Media Type)&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 196:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; If the request has a body but it doesn’t match the media-type
defined in &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Content-Type &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;header,
return status code (400 Bad Request)&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 197:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; If the request has a body and it matches the media-type defined
in &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Content-Type &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;header, but the message
structure or values are invalid, return status code (400 Bad Request)&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 198:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; in case of abnormal failures, return HTTP status code 5XX&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 199:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; in case of errors or failure, return error report in the response
body describing the issue.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 200:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Return status code (204 No Content) for a success response and
don’t return a payload in the response body&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 201:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Avoid returning success
code with an error in the body.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 202:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Return Last-Modified header to inform the consumer the new last
update date time&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 203:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Allow conditional &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;DELETE &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;request by supporting
If-Unmodified-Since and If-Match headers to prevent delete based on invalid
state:&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ol start=&quot;1&quot; style=&quot;margin-top: 0in;&quot; type=&quot;1&quot;&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l11 level1 lfo31; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Client can propagate
     If-Unmodified-Since with previously retrieved Last-Modified Or can
     propagate If-Match with previously retrieved ETag&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l11 level1 lfo31; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Server validates the value, if
     condition is true, that means the resource has not been updated and there
     is no conflict and server must return HTTP Status Code (204 No Content)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 10pt; mso-list: l11 level1 lfo31; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;If
     the condition is false, that means the resource is updated and there is a
     conflict. In this case, the server must return HTTP Status code (412
     Precondition Failed)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 204:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; If
request integrity is important, ask your client to send the signature in the
header and make sure to validate it (see &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;#Rule81&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt;&quot;&gt;Rule#81&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;). If the signature is not provided or not valid. return HTTP
status code (403 Forbidden) along with error report in the response body
describing the issue&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 6.0pt; margin-left: 0in; margin-right: 0in; margin-top: 20.0pt; margin: 20pt 0in 6pt; mso-outline-level: 1;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; font-size: 20pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-font-kerning: 18.0pt;&quot;&gt;PATCH HTTP Method Rules&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 24pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-font-kerning: 18.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 205: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Use &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;PATCH &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;to update an existing
object partially. Following example updates already exist user with id 121: &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;PATCH /users/121&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 206: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;PATCH is relatively new which may not be yet supported by old
tools and network devices.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;207&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; With PATCH, it is
recommended to use &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://tools.ietf.org/html/rfc6902&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt;&quot;&gt;standard patch format&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: #333333; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;. For example:&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;{ &quot;op&quot;: &quot;add&quot;, &quot;path&quot;:
&quot;/a/b/c&quot;, &quot;value&quot;: &quot;foo&quot; }&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 208:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Advertise support for the &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;PATCH&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; via the allow header of the &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;OPTIONS&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; response.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;#Request&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;OPTIONS /customers/1&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;#Response&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;HTTP/1.1 204 No Content&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Allow: POST, GET, PATCH&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Accept-Patch: application/json&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 209: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;If consumer didn’t provide or provided invalid or expired
credentials (In &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Authorization&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;
header), return HTTP Status code (401 Unauthorized) and it is recommended to
return &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;WWW-Authenticate&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;
header to tell the client what kind of authentication is expected&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 210: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;If consumer provided un-authorized credentials, return Http status
code (403 Forbidden)&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 211: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;if the requested resource (collection or object) doesn’t exist and
the server doesn’t know if the resource was there before or not, return Http
Status code (404 Not Found)&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 212: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;if the requested resource doesn’t exist and the server knows that
the resource was there before, return Http Status code (405 Gone). This is
applicable in case an old version of API has been removed and the server
doesn’t know if there is a newer version&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 213:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; if the requested object resource doesn’t exist and the server
knows it was there before, return (405 Gone). This is applicable in this case a
logical delete mechanism is implemented at the level of the object.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 214: &lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;if the requested resource has moved to a different location,
return Http Status code (301 Moved Permanently) with &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Location&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; header value pointing
to the new URI. This is applicable in case a client is requesting an old
version of the API and the server knows where the new version is (see &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;#Rule25&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt;&quot;&gt;Rule#25&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;).&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 215:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; If the request has a payload but it doesn’t include &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Content-Type&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; header. Return status
code (400 Bad Request).&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 216:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; If the request has unsupported media-type defined in &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Content-Type &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;header, return status
code (415 Unsupported Media Type)&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 217:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; If the request has a body but it doesn’t match the media-type
defined in &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Content-Type &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;header,
return status code (400 Bad Request)&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 218:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; If the request has a body and it matches the media-type defined
in &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Content-Type &lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;header, but the message
structure or values are invalid, return status code (400 Bad Request)&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 219:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; in case of abnormal failures, return HTTP status code 5XX&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 220:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; in case of errors or failure, return error report in the response
body describing the issue(s).&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 221:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Return status code (204 No Content) for a success response and
don’t return a payload in the response body&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 222:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Avoid returning success
code with an error in the body.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 223:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Return Last-Modified header to inform the consumer the new last
update date time&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 224:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Return ETag header to inform the consumer about the latest
version of the resource. ETag can be generated using MD5 hash value&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 10pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 225:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Allow conditional
PUTrequest by supporting If-Unmodified-Since and If-Match headers to prevent
concurrent update conflicts:&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ol start=&quot;1&quot; style=&quot;margin-top: 0in;&quot; type=&quot;1&quot;&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l20 level1 lfo32; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Client can propagate
     If-Unmodified-Since with previously retrieved Last-Modified Or can
     propagate If-Match with previously retrieved ETag&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l20 level1 lfo32; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Server validates the value, if
     condition is true, that means the resource has not been updated and there
     is no conflict and server must return HTTP Status Code (204 No Content)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 10pt; mso-list: l20 level1 lfo32; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;If
     the condition is false, that means the resource is updated and there is a
     conflict. In this case, the server must return HTTP Status code (412
     Precondition Failed) along with the updated values of &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;ETag&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;
     and &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Last-Modified&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; headers&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in;&quot;&gt;&lt;b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 226:&lt;/span&gt;&lt;/b&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; If
request integrity is important, ask your client to send the signature in the
header and make sure to validate it (see &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;#Rule81&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt;&quot;&gt;Rule#81&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;). If the signature is not provided or not valid. return HTTP
status code (403 Forbidden) along with error report in the response body
describing the issue&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 6.0pt; margin-left: 0in; margin-right: 0in; margin-top: 20.0pt; margin: 20pt 0in 6pt; mso-outline-level: 1;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; font-size: 20pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-font-kerning: 18.0pt;&quot;&gt;REST API Design Process&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 24pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-font-kerning: 18.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;ol start=&quot;1&quot; style=&quot;margin-top: 0in;&quot; type=&quot;1&quot;&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l16 level1 lfo33; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Find the nouns in the user
     story and model them as Resources&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l16 level1 lfo33; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Assign the Resources unique
     URIs. Use &lt;span style=&quot;color: #1155cc;&quot;&gt;URL naming rules&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l16 level1 lfo33; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;For Resources that can exist
     only as part of another Resource, define them as sub-resources. For
     example: /users/{user-id}/addresses&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l16 level1 lfo33; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Build schemas for the resources
     representations using JSON Schema and/or XML Schema. Use &lt;span style=&quot;color: #1155cc;&quot;&gt;Data Model rules&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l16 level1 lfo33; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Define the relationships
     between the models&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l16 level1 lfo33; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Build Hypermedias to link the
     resources together and include them in the resources schemas. Use
     Hypermedia rules&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l16 level1 lfo33; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Find the verbs in the user
     story and try to map them to CRUD operation and associate them to the
     resources&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l16 level1 lfo33; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Find the non-CRUD verbs and
     define them as sub-resources. Use POST method Rules&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l16 level1 lfo33; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Build Hyper-medias for
     workflows activities and include them in the schemas&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l16 level1 lfo33; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Build Hyper-medias for
     pagination and include them in the schemas&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l16 level1 lfo33; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Build a special-purpose
     resource for Async Tasks (/async-tasks)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l16 level1 lfo33; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Describe the API using Open API
     Specs and use $ref to include the representations schemas&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 6.0pt; margin-left: 0in; margin-right: 0in; margin-top: 20.0pt; margin: 20pt 0in 6pt; mso-outline-level: 1;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; font-size: 20pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-font-kerning: 18.0pt;&quot;&gt;References&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 24pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-font-kerning: 18.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin: 12pt 0in;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: black; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;The above list of rules
have been collected and consolidated from the following references:&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ol start=&quot;1&quot; style=&quot;margin-top: 0in;&quot; type=&quot;1&quot;&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; margin-top: 12pt; mso-list: l17 level1 lfo34; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;http://www.arcitura.com/&quot;&gt;&lt;span style=&quot;color: #1155cc;&quot;&gt;www.arcitura.com&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l17 level1 lfo34; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;RESTful Web APIs, by Leonard
     Richardson&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l17 level1 lfo34; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;REST API Design Rulebook, by
     Mark Masse&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l17 level1 lfo34; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Designing Web APIs – Building
     APIs that developers love, by Brenda Jin&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l17 level1 lfo34; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Restful Web Services Cookbook,
     by Subbu Allamaraju&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l17 level1 lfo34; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://www.w3.org/TR/activitystreams-vocabulary/&quot;&gt;&lt;span style=&quot;color: #1155cc;&quot;&gt;W3C Activity Stream Vocabulary&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l17 level1 lfo34; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://dublincore.org/&quot;&gt;&lt;span style=&quot;color: #1155cc;&quot;&gt;Dublin Core&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l17 level1 lfo34; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://schema.org/&quot;&gt;&lt;span style=&quot;color: #1155cc;&quot;&gt;Schema.org&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l17 level1 lfo34; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://microformats.org/wiki/Main_Page&quot;&gt;&lt;span style=&quot;color: #1155cc;&quot;&gt;Microformats
     Wiki&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l17 level1 lfo34; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;http://xmlns.com/foaf/spec/&quot;&gt;&lt;span style=&quot;color: #1155cc;&quot;&gt;http://xmlns.com/foaf/spec/&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l17 level1 lfo34; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://tools.ietf.org/html/rfc8288&quot;&gt;&lt;span style=&quot;color: #1155cc;&quot;&gt;https://tools.ietf.org/html/rfc8288&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l17 level1 lfo34; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://www.iana.org/assignments/link-relations/link-relations.xhtml&quot;&gt;&lt;span style=&quot;color: #1155cc;&quot;&gt;https://www.iana.org/assignments/link-relations/link-relations.xhtml&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l17 level1 lfo34; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://tools.ietf.org/html/rfc6570&quot;&gt;&lt;span style=&quot;color: #1155cc;&quot;&gt;https://tools.ietf.org/html/rfc6570&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l17 level1 lfo34; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://tools.ietf.org/html/rfc7807&quot;&gt;&lt;span style=&quot;color: #1155cc;&quot;&gt;https://tools.ietf.org/html/rfc7807&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l17 level1 lfo34; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://tools.ietf.org/html/rfc6906&quot;&gt;&lt;span style=&quot;color: #1155cc;&quot;&gt;https://tools.ietf.org/html/rfc6906&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l17 level1 lfo34; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://tools.ietf.org/html/rfc5005&quot;&gt;&lt;span style=&quot;color: #1155cc;&quot;&gt;https://tools.ietf.org/html/rfc5005&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l17 level1 lfo34; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://tools.ietf.org/html/rfc4685&quot;&gt;&lt;span style=&quot;color: #1155cc;&quot;&gt;https://tools.ietf.org/html/rfc4685&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l17 level1 lfo34; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://tools.ietf.org/html/rfc5829&quot;&gt;&lt;span style=&quot;color: #1155cc;&quot;&gt;https://tools.ietf.org/html/rfc5829&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l17 level1 lfo34; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://tools.ietf.org/html/rfc5829&quot;&gt;&lt;span style=&quot;color: #1155cc;&quot;&gt;https://tools.ietf.org/html/rfc&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;u&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: #1155cc; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;7946&lt;/span&gt;&lt;/u&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l17 level1 lfo34; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://tools.ietf.org/html/rfc6902&quot;&gt;&lt;span style=&quot;color: #1155cc;&quot;&gt;https://tools.ietf.org/html/rfc6902&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: #1155cc; line-height: normal; margin-bottom: 0in; mso-list: l17 level1 lfo34; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;u&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;https://tools.ietf.org/html/rfc3339&lt;/span&gt;&lt;/u&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 0in; mso-list: l17 level1 lfo34; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://www.iso.org/iso-3166-country-codes.html&quot;&gt;&lt;span style=&quot;color: #1155cc;&quot;&gt;https://www.iso.org/iso-3166-country-codes.html&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 12pt; mso-list: l17 level1 lfo34; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;u&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;color: #1155cc; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;https://en.wikipedia.org/wiki/ISO_4217&lt;/span&gt;&lt;/u&gt;&lt;span face=&quot;&amp;quot;Arial&amp;quot;,sans-serif&quot; style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://raikblog.blogspot.com/feeds/4563312579807880419/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://raikblog.blogspot.com/2021/03/consolidated-design-rules-and-standards.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/4563312579807880419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/4563312579807880419'/><link rel='alternate' type='text/html' href='http://raikblog.blogspot.com/2021/03/consolidated-design-rules-and-standards.html' title='Consolidated Design Rules and Standards for Great REST API'/><author><name>Haitham Raik</name><uri>http://www.blogger.com/profile/04008662680572575275</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7677652326497115767.post-2475819481245222340</id><published>2021-02-21T15:55:00.008+03:00</published><updated>2021-03-08T21:49:44.379+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="API"/><category scheme="http://www.blogger.com/atom/ns#" term="API Design"/><category scheme="http://www.blogger.com/atom/ns#" term="API Hypermedia"/><category scheme="http://www.blogger.com/atom/ns#" term="API Metadata"/><category scheme="http://www.blogger.com/atom/ns#" term="API Naming Convention"/><category scheme="http://www.blogger.com/atom/ns#" term="API Standard"/><category scheme="http://www.blogger.com/atom/ns#" term="API Uniform Contract"/><title type='text'>Consolidated Design Rules and Standards for Great Web API</title><content type='html'>&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 3pt; margin-top: 24pt;&quot;&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;In a previous thread
named &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://raikblog.blogspot.com/2021/02/api-definition-and-history.html&quot;&gt;&lt;span style=&quot;color: #1155cc; font-family: &amp;quot;Arial&amp;quot;,sans-serif; font-size: 11.0pt;&quot;&gt;API
Definition and History&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;, we have explored how
the APIs have evolved through the time, generation after generation until we
get to the Web API generation. In this thread, we will list and consolidate the
most common rules, conventions and standards for designing Great Web APIs and
we will group them into the following list of categories:&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ul style=&quot;margin-top: 0in;&quot; type=&quot;disc&quot;&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-top: 12.0pt; mso-list: l9 level1 lfo1; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Security&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-list: l9 level1 lfo1; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Performance and Reliability&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-list: l9 level1 lfo1; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Clarity and Consistency&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 12.0pt; mso-list: l9 level1 lfo1; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Change
     Management&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 4.0pt; margin-left: 0in; margin-right: 0in; margin-top: 20.0pt; mso-outline-level: 1;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; font-size: 20.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-font-kerning: 18.0pt;&quot;&gt;Security Rules&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 24.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-font-kerning: 18.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;The following lists the
main recommended security rules for Great API Design:&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 1: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Prefer&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://haitham-raik.medium.com/oauth-and-openid-connect-clarifications-38b8f0099c91&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; font-size: 11.0pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1155cc; font-family: &amp;quot;Arial&amp;quot;,sans-serif; font-size: 11.0pt;&quot;&gt;OAUTH&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; over Basic Authentication&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 2: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Define minimal Oauth Scopes&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 3: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Isolate sensitive information in a separate scope&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 4: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Define different scopes for different resources&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 5: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Always verify the access token is valid and has the right
permission&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ol start=&quot;1&quot; style=&quot;margin-top: 0in;&quot; type=&quot;1&quot;&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-top: 12.0pt; mso-list: l7 level1 lfo2; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Make sure
     the access token is not expired&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-list: l7 level1 lfo2; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Make sure the access token is permitted to perform the
     requested HTTP method on the requested resource&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-list: l7 level1 lfo2; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;If access token validation failed, an error should be
     returned&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-list: l7 level1 lfo2; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;It is useful to return more details about the scopes
     needed and scopes provided. For example, return these headers:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ol start=&quot;4&quot; style=&quot;margin-top: 0in;&quot; type=&quot;1&quot;&gt;
 &lt;ol start=&quot;1&quot; style=&quot;margin-top: 0in;&quot; type=&quot;a&quot;&gt;
  &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-list: l7 level2 lfo3; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;X-OAuth-Scopes
      lists the scopes provided for the access token&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
  &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 12.0pt; mso-list: l7 level2 lfo3; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;X-Accepted-OAuth-Scopes
      lists the required scopes for this action&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;/ol&gt;
&lt;/ol&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 6: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Issue One time use Authorization Codes&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 7: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Issue short-lived Access Tokens&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 8: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Support refresh tokens to allow consumers to issue new access
tokens.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 9: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Support OAuth state parameter&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 10: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Use SSL/TLS with mutual authentication&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 11: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Verify provided redirect URL parameter and make sure it matches
one of the registered URLs for the client application&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 12: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Disallow rendering OAUTH page in iframes by using &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;X-Frame-Options&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; and/or &lt;/span&gt;&lt;span style=&quot;color: #36464e; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Content-Security-Policy: frame-ancestors &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;header&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 13: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Use Verification Tokens with WebHook APIs&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 14: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Use Signatures and &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; font-size: 7.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Prevent replay attacks by including request timestamp&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 15: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Avoid sending sensitive information as part of WebHooks&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 16: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Provide guidelines and documentation for the API security
requirements and best practices&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 17: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Provide consumers with SDKs that implement the best security
practices (authentication-using OAuth, rate-limit control, issue and validate
signature, and validate request timestamp, etc.)&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 4.0pt; margin-left: 0in; margin-right: 0in; margin-top: 20.0pt; mso-outline-level: 1;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; font-size: 20.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-font-kerning: 18.0pt;&quot;&gt;Performance and
Reliability Rules&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 24.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-font-kerning: 18.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;The following lists the
main recommended performance rules for Great API Design:&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 18: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Use Database Indexes. Note: Create indexes wisely as adding too
many indexes can affect the insert, update and delete performance, for that
purpose, it is recommended to follow &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://medium.com/pragmatic-programmers/solution-mentor-your-indexes-228aa9e7459d&quot;&gt;&lt;span style=&quot;color: #1155cc; font-family: &amp;quot;Arial&amp;quot;,sans-serif; font-size: 11.0pt;&quot;&gt;MENTOR &lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;checklist&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 19: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Use Database Materialized Views&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 20: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Use Caching. Note: Remember to implement a proper invalidation
and/or expiration mechanisms&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 21: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Use Asynchronous processing for Expensive operations&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 22: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;If your API consumer uses polling to get the changes, consider
event-driven APIs (such as Webhooks, websockets, and HTTP Streaming)&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 23: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;If your API is too fine-grained where few details are returned
where consumer need to make multiple calls to get all the required details,
then you need to introduce new coarser-grained methods to collect the
frequently required details in one method (see&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://patterns.arcitura.com/service-api-patterns/service-api-denormalization&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; font-size: 11.0pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1155cc; font-family: &amp;quot;Arial&amp;quot;,sans-serif; font-size: 11.0pt;&quot;&gt;Service
API Denormalization&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; design pattern for more
details)&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 24: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;If your API is too coarse-grained where more details are returned
than what they need, then you need to introduce finer-grained methods to return
as minimum as required (see&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://patterns.arcitura.com/service-api-patterns/lightweight-endpoint&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; font-size: 11.0pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1155cc; font-family: &amp;quot;Arial&amp;quot;,sans-serif; font-size: 11.0pt;&quot;&gt;Lightweight
Endpoint&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; design pattern for more
details).&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 25: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;If your API consumers’ requirements for the details vary, consider
GraphQL API where the consumers can fetch exactly the fields they need.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 26: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Support Bulks; Instead of sending for bulky details as individual
requests, consider supporting bulk requests where multiple entries/objects can
be submitted in one request&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 27: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Support Filtration and Ordering. If not provided the consumer may
request all the data to filter it out locally which can overload the database
and network.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 28: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;If your API returns large dataset, use pagination:&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ol start=&quot;1&quot; style=&quot;margin-top: 0in;&quot; type=&quot;1&quot;&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-top: 12.0pt; mso-list: l10 level1 lfo4; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Offset-based
     Pagination (based on Page Id and Page Size)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-list: l10 level1 lfo4; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Cursor-based Pagination (server
     returns in the response, cursor for the next page which need to be
     submitted by the consumer if he need to get the next page)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 12.0pt; mso-list: l10 level1 lfo4; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Make
     sure to sort the data as per the consumer preference&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 29: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Implement Rate-limiting strategies to control how many times an
application or a client is allowed to call an API during a given time interval.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ol start=&quot;1&quot; style=&quot;margin-top: 0in;&quot; type=&quot;1&quot;&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-top: 12.0pt; mso-list: l6 level1 lfo5; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;When the
     limit is reached, return HTTP 429 status code&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-list: l6 level1 lfo5; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Set the retry-after header to let developers
     programmatically retry&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 12.0pt; mso-list: l6 level1 lfo5; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Make
     sure to document the rate limiting policies and give the consumers few
     best practices to not reach the rate limit&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 30: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Encourage your consumers to use gzip compression&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 31: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Provide consumers with SDKs that implements the best performance
practices (caching, compression, pagination, rate-limit support, etc.)&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 4.0pt; margin-left: 0in; margin-right: 0in; margin-top: 20.0pt; mso-outline-level: 1;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; font-size: 20.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-font-kerning: 18.0pt;&quot;&gt;Clarity and Consistency
Rules&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 24.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-font-kerning: 18.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 31: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Enforce naming convention and standard structure for API methods,
resources and payloads for better consistency.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 32: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Adopt standards to name your resources and their fields. The
following sites define list of schemas to be consulted through the design (&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://schema.org/&quot;&gt;&lt;span style=&quot;color: #1155cc; font-family: &amp;quot;Arial&amp;quot;,sans-serif; font-size: 11.0pt;&quot;&gt;schema.org&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://tools.ietf.org/html/rfc7946&quot;&gt;&lt;span style=&quot;color: #1155cc; font-family: &amp;quot;Arial&amp;quot;,sans-serif; font-size: 11.0pt;&quot;&gt;GeoJSON&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://microformats.org/wiki/Main_Page&quot;&gt;&lt;span style=&quot;color: #1155cc; font-family: &amp;quot;Arial&amp;quot;,sans-serif; font-size: 11.0pt;&quot;&gt;Microformats wiki&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://dublincore.org/&quot;&gt;&lt;span style=&quot;color: #1155cc; font-family: &amp;quot;Arial&amp;quot;,sans-serif; font-size: 11.0pt;&quot;&gt;Dublin
Core&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://www.w3.org/TR/activitystreams-vocabulary/&quot;&gt;&lt;span style=&quot;color: #1155cc; font-family: &amp;quot;Arial&amp;quot;,sans-serif; font-size: 11.0pt;&quot;&gt;Activity
Vocabulary&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;http://xmlns.com/foaf/spec/&quot;&gt;&lt;span style=&quot;color: #1155cc; font-family: &amp;quot;Arial&amp;quot;,sans-serif; font-size: 11.0pt;&quot;&gt;FOAF&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 33:&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Use standards for fields values. Use &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://www.iso.org/iso-3166-country-codes.html&quot;&gt;&lt;span style=&quot;color: #1155cc; font-family: &amp;quot;Arial&amp;quot;,sans-serif; font-size: 11.0pt;&quot;&gt;ISO3166 &lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;for countries, &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/ISO_4217&quot;&gt;&lt;span style=&quot;color: #1155cc; font-family: &amp;quot;Arial&amp;quot;,sans-serif; font-size: 11.0pt;&quot;&gt;ISO4217 &lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;for currencies, &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://tools.ietf.org/html/rfc3339&quot;&gt;&lt;span style=&quot;color: #1155cc; font-family: &amp;quot;Arial&amp;quot;,sans-serif; font-size: 11.0pt;&quot;&gt;RFC3339 &lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;for dates and times formats, etc.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 34: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Provide standard and meaningful response codes and return
longer-form response codes “name_too_long”.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 35:&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; define standard schema for error reporting and use it across all
the APIs responses&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 36: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Provide human-readable error description in the response payload.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 37: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Provide standard form of the meta-data and a standard list of
allowed meta-data fields.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 38: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Log errors and provide consumers a dashboard to browse and analyze
the logs&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 39: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Apply Contract-First Design approach by defining the API before
start the implementation to ensure the consistency among all methods and
operations&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 40: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Pre-define the data models for your API using strict data types
before starting designing any API using XML Schema and/or JSON Schema and map
them with Application-specific media types.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 41:&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Don’t use database schema as the basis for your API design.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 42:&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Do not use Auto-generation schema tools&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 43:&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Reduce the quantity and restrictiveness of validation logic
embedded in the API and keep them generic. Detailed validations in the API can
make it coupled to the underlying implementation and accordingly it will be
always eligible for change whenever the underlying implementation is changed.
See &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://patterns.arcitura.com/service-api-patterns/validation-abstraction&quot;&gt;&lt;span style=&quot;color: #1155cc; font-family: &amp;quot;Arial&amp;quot;,sans-serif; font-size: 11.0pt;&quot;&gt;Validation
Abstraction&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; design pattern for more
details&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 44: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Pre-define problem detail schema and use it across all the APIs&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 45: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Support multiple formats (JSON, XML, etc.) and allow the consumer
to negotiate for his preferred format (see&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://patterns.arcitura.com/soa-patterns/design_patterns/content_negotiation&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; font-size: 11.0pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1155cc; font-family: &amp;quot;Arial&amp;quot;,sans-serif; font-size: 11.0pt;&quot;&gt;Content
Negotiation&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; design pattern for more
details)&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 46: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Use Open API Specification to describe your API and use $ref to
reference the pre-defined data model Schema (See Rule#40&amp;amp;44) that increases
the reusability and improves the consistency&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 47: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Always validate requests against the defined schema and respond
back with meaningful error code and message in case of failure. As per Rule#43
keep the schema constraints to the minimum&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 48: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;You must use the same format for both success and failure
responses. For example If you are using JSON for success response, then you
must use JSON for failure response&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 49: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Provide documentation to help developers get started&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ol start=&quot;1&quot; style=&quot;margin-top: 0in;&quot; type=&quot;1&quot;&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-top: 12.0pt; mso-list: l3 level1 lfo6; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Provide
     tutorials and Getting start guides&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-list: l3 level1 lfo6; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Provide examples for request and response payload&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-list: l3 level1 lfo6; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Provide sample code&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-list: l3 level1 lfo6; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Provide API technical specifications (see Rule#46)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-list: l3 level1 lfo6; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Provide best practices guidelines and terms of service&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 12.0pt; mso-list: l3 level1 lfo6; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Provide
     FAQ&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 50: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Provide interactive documentation online, where developers can
test out the API&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 51: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Provide consumers with SDKs that implements the best practices
(error handling, retry for rate-limit errors, perform OAuth authentication,
pagination, etc.)&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 4.0pt; margin-left: 0in; margin-right: 0in; margin-top: 20.0pt; mso-outline-level: 1;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; font-size: 20.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-font-kerning: 18.0pt;&quot;&gt;Change Management Rules&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 24.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-font-kerning: 18.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 52: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Make sure your changes are consistent and following your standard
naming convention, error coding, logging, etc.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 53: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Set up versioning system and standard versioning&amp;nbsp; scheme from
the beginning (see&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://patterns.arcitura.com/service-api-patterns/canonical-versioning&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; font-size: 11.0pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1155cc; font-family: &amp;quot;Arial&amp;quot;,sans-serif; font-size: 11.0pt;&quot;&gt;Canonical
Versioning&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; design pattern for more
details) and use&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://patterns.arcitura.com/service-api-patterns/version-identification&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; font-size: 11.0pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1155cc; font-family: &amp;quot;Arial&amp;quot;,sans-serif; font-size: 11.0pt;&quot;&gt;Version
Identification&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; design pattern through
the API design&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ol start=&quot;1&quot; style=&quot;margin-top: 0in;&quot; type=&quot;1&quot;&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-top: 12.0pt; mso-list: l0 level1 lfo7; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Recommended
     versioning scheme (MAJOR.MINOR.PATCH)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ol start=&quot;1&quot; style=&quot;margin-top: 0in;&quot; type=&quot;1&quot;&gt;
 &lt;ol start=&quot;1&quot; style=&quot;margin-top: 0in;&quot; type=&quot;a&quot;&gt;
  &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-list: l0 level2 lfo8; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;MAJOR
      for backward incompatible changes (See Rule#55)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
  &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-list: l0 level2 lfo8; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;MINOR
      for backward compatible changes (See Rule#54)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
  &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-list: l0 level2 lfo8; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;PATCH
      for backward compatible bug fixes&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;/ol&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 12.0pt; mso-list: l0 level1 lfo8; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Another
     recommended versioning scheme is to apply the backward compatible changes
     seamlessly without changing the version number (e.g., v1, v2, v3, etc.)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 54: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;The following changes can be considered backward compatible and
can be applied at any time with a proper communication:&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ol start=&quot;1&quot; style=&quot;margin-top: 0in;&quot; type=&quot;1&quot;&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-top: 12.0pt; mso-list: l1 level1 lfo9; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Adding new
     Operation, new method or new endpoint&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-list: l1 level1 lfo9; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Adding optional field to the request payload&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-list: l1 level1 lfo9; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Deleting optional fields from the request or response
     (Unless the response payload is expected to change based on this request
     field)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-list: l1 level1 lfo9; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Loosen request field restrictions. For example: request
     field max length is increased from 10 to 20 or changing integer data type
     to string&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 12.0pt; mso-list: l1 level1 lfo9; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Tighten
     response field restrictions. For example: response field max length is
     decreased from 20 to 10 or changing string data type to integer&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 55: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;The following changes are not backward compatible and accordingly
proper change management techniques should be applied to minimize the impact on
the consumers:&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ol start=&quot;1&quot; style=&quot;margin-top: 0in;&quot; type=&quot;1&quot;&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-top: 12.0pt; mso-list: l8 level1 lfo10; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Deleting or
     renaming operation, method or endpoint&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-list: l8 level1 lfo10; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Add Mandatory field to the
     request payload&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-list: l8 level1 lfo10; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Add Field to the response
     payload&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-list: l8 level1 lfo10; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Delete or rename mandatory
     field from the request payload&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-list: l8 level1 lfo10; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Delete or rename mandatory
     field from the response payload&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-list: l8 level1 lfo10; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Change the order of the fields
     in case of XML schema that doesn’t use &amp;lt;xsd:all&amp;gt;. In case of JSON,
     the properties are, by default, unordered.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-list: l8 level1 lfo10; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Tighten request field
     restrictions. For example: request field max length decreased from 20 to
     10 or changing string data type to integer&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-list: l8 level1 lfo10; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Loosen response field
     restrictions. For example: response field max length increased from 10 to
     20 or changing integer data type to string&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-list: l8 level1 lfo10; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Changes on error codes and
     error codes meaning&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 12.0pt; mso-list: l8 level1 lfo10; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Change
     the default data format (e.g., changing the default from json to xml or
     vice versa)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 56: &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Apply the following techniques to minimize the impact on the
consumer in case of backward incompatible changes:&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ol start=&quot;1&quot; style=&quot;margin-top: 0in;&quot; type=&quot;1&quot;&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-top: 12.0pt; mso-list: l2 level1 lfo11; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Utilize the
     existing versioning system and versioning scheme to introduce a new
     version (See Rule#2)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-list: l2 level1 lfo11; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Introduce&lt;a href=&quot;https://patterns.arcitura.com/service-api-patterns/fundamental-service-api-patterns/service-api-proxy&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1155cc;&quot;&gt;Service API proxy&lt;/span&gt;&lt;/a&gt;
     design pattern for existing customers. API proxy retains the original API
     and contains logic to accommodate the changes.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-list: l2 level1 lfo11; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;In case of endpoint change,
     apply&lt;a href=&quot;https://patterns.arcitura.com/service-api-patterns/fundamental-service-api-patterns/endpoint-redirection&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1155cc;&quot;&gt;Endpoint
     Redirection&lt;/span&gt;&lt;/a&gt; design pattern using Location header to redirect
     the consumer to the new endpoint&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-list: l2 level1 lfo11; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Apply&lt;a href=&quot;https://patterns.arcitura.com/service-api-patterns/termination-notification&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1155cc;&quot;&gt;Termination
     Notification&lt;/span&gt;&lt;/a&gt; design pattern to announce version has been
     deprecated and announce the date of old version retirement&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-list: l2 level1 lfo11; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Build change log to track the
     versions and changes applied in each version&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 12.0pt; mso-list: l2 level1 lfo11; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Once
     the old service is switched service, server should return status code (410
     “Gone”)&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Rule 57:&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Encourage your clients:&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ol start=&quot;1&quot; style=&quot;margin-top: 0in;&quot; type=&quot;1&quot;&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-top: 12.0pt; mso-list: l5 level1 lfo12; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;To not fail
     if they received a new field in the response&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 12.0pt; mso-list: l5 level1 lfo12; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;To
     support unordered fields for the data models in the request and response&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 4.0pt; margin-left: 0in; margin-right: 0in; margin-top: 20.0pt; mso-outline-level: 1;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; font-size: 20.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-font-kerning: 18.0pt;&quot;&gt;References&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 24.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-font-kerning: 18.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 12.0pt; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;The above list of rules
have been collected and consolidated from the following references:&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ol start=&quot;1&quot; style=&quot;margin-top: 0in;&quot; type=&quot;1&quot;&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-top: 12.0pt; mso-list: l4 level1 lfo13; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;http://www.arcitura.com/&quot;&gt;&lt;span style=&quot;color: #1155cc;&quot;&gt;www.arcitura.com&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-list: l4 level1 lfo13; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;RESTful Web APIs, by Leonard
     Richardson&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-list: l4 level1 lfo13; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;REST API Design Rulebook, by
     Mark Masse&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-list: l4 level1 lfo13; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Designing Web APIs – Building
     APIs that developers love, by Brenda Jin&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-list: l4 level1 lfo13; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Restful Web Services Cookbook,
     by Subbu Allamaraju&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-list: l4 level1 lfo13; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://www.w3.org/TR/activitystreams-vocabulary/&quot;&gt;&lt;span style=&quot;color: #1155cc;&quot;&gt;W3C Activity Stream Vocabulary&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-list: l4 level1 lfo13; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://dublincore.org/&quot;&gt;&lt;span style=&quot;color: #1155cc;&quot;&gt;Dublin Core&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-list: l4 level1 lfo13; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://schema.org/&quot;&gt;&lt;span style=&quot;color: #1155cc;&quot;&gt;Schema.org&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-list: l4 level1 lfo13; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://microformats.org/wiki/Main_Page&quot;&gt;&lt;span style=&quot;color: #1155cc;&quot;&gt;Microformats
     Wiki&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-list: l4 level1 lfo13; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;http://xmlns.com/foaf/spec/&quot;&gt;&lt;span style=&quot;color: #1155cc;&quot;&gt;http://xmlns.com/foaf/spec/&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-list: l4 level1 lfo13; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://tools.ietf.org/html/rfc7807&quot;&gt;&lt;span style=&quot;color: #1155cc;&quot;&gt;https://tools.ietf.org/html/rfc7807&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: #1155cc; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-list: l4 level1 lfo13; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;u&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;https://tools.ietf.org/html/rfc3339&lt;/span&gt;&lt;/u&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-list: l4 level1 lfo13; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;a href=&quot;https://www.iso.org/iso-3166-country-codes.html&quot;&gt;&lt;span style=&quot;color: #1155cc;&quot;&gt;https://www.iso.org/iso-3166-country-codes.html&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal; margin-bottom: 12.0pt; mso-list: l4 level1 lfo13; tab-stops: list .5in; vertical-align: baseline;&quot;&gt;&lt;u&gt;&lt;span style=&quot;color: #1155cc; font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;https://en.wikipedia.org/wiki/ISO_4217&lt;/span&gt;&lt;/u&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://raikblog.blogspot.com/feeds/2475819481245222340/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://raikblog.blogspot.com/2021/02/consolidated-design-rules-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/2475819481245222340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/2475819481245222340'/><link rel='alternate' type='text/html' href='http://raikblog.blogspot.com/2021/02/consolidated-design-rules-and.html' title='Consolidated Design Rules and Standards for Great Web API'/><author><name>Haitham Raik</name><uri>http://www.blogger.com/profile/04008662680572575275</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7677652326497115767.post-5772196379157573302</id><published>2021-02-15T13:37:00.003+03:00</published><updated>2021-02-15T21:26:38.787+03:00</updated><title type='text'>OAuth and OpenID Connect Clarifications</title><content type='html'>&lt;p&gt;&amp;nbsp;Whenever developers start working with SSO and whenever they
need to build a secure API, they usually raise questions like:&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=&quot;MsoListParagraphCxSpFirst&quot; style=&quot;mso-list: l3 level1 lfo1; text-indent: -0.25in;&quot;&gt;&lt;/p&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;&lt;span style=&quot;font: 7pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;What is the difference
between Open ID Connect and OAUTH? &lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;&lt;span style=&quot;font: 7pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir=&quot;LTR&quot;&gt;&lt;/span&gt;When to use Open ID Connect
and when to use OAUTH? &lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;&lt;span style=&quot;font: 7pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir=&quot;LTR&quot;&gt;&lt;/span&gt;What is the difference
between Open ID Connect and SAML?&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Symbol;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;For APIs, why do I need
OAUTH? Can I just use basic authentication?&lt;/li&gt;&lt;/ol&gt;&lt;!--[if !supportLists]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;p&gt;&lt;/p&gt;

&lt;p class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l3 level1 lfo1; text-indent: -0.25in;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l3 level1 lfo1; text-indent: -0.25in;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=&quot;MsoListParagraphCxSpLast&quot; style=&quot;mso-list: l3 level1 lfo1; text-indent: -0.25in;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;In this thread, I will try to list the different possible
use cases, simplify the concepts and explain the different possible flows in
detail to eliminate any confusion.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;h2&gt;OAuth in nutshell&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;In the following, we will discuss OAUTH version 2.0 which is
the de-facto&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;OAUTH is the base and we must understand how OAUTH works
before going to Open ID Connect. It will be confusing for you, if you tried to
understand Open ID Connect before understanding OAUTH.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;At a high level, OAUTH is a generic standard framework that
controls the delegation and authorization to a protected resource. &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;b&gt;But what protected resource mean? &lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;The resource can be anything that can be used for a purpose.
For example, the file, record in a database, or even a mathematical calculation
can be considered as resources. The resources are usually accessible (exposed) through
an API or a webservice. If the resource needs to be protected from unauthorized
access, then it is considered as protected resource. For example, my details in
Facebook is considered as protected resources because Facebook is not supposed
to share my details with any other application without my permission.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;According to the above definitions, OAUTH allows end-users
to give (delegate) to 3&lt;sup&gt;rd&lt;/sup&gt;-party client applications (we will call it
later “Client Application”) the permission to access their protected resources.
For example, OAUTH on Facebook allows me, as end-user, to give Twitter application
the permission to post on my Facebook page on my behalf.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;OAUTH manages the resources by assigning them scopes. Each scope
specifies which resource can be accessed and can also specify the type of
access (read or write). OAUTH gives you, as OAUTH server owner, the flexibility
to define the scopes you want the way you want it, the following are just examples
for possible scopes:&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Read_profile&lt;/li&gt;&lt;li&gt;post_thread&lt;/li&gt;&lt;li&gt;Write_profile&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;OAUTH supports 3 main authorization scenarios (They call
them flows):&lt;/p&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Authorization Code Flow
which is suitable for Web-Applications that have end-user involved&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;&lt;span style=&quot;font: 7pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir=&quot;LTR&quot;&gt;&lt;/span&gt;Client Credentials Flow
which is suitable for server-to-server communication and there is no end-user
involved&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;&lt;span style=&quot;font: 7pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir=&quot;LTR&quot;&gt;&lt;/span&gt;Resource Owner Password
Flow (it is not recommended and accordingly I will not explain it in this
thread)&lt;/li&gt;&lt;/ol&gt;&lt;!--[if !supportLists]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;p&gt;&lt;/p&gt;

&lt;p class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l2 level1 lfo2; text-indent: -0.25in;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=&quot;MsoListParagraphCxSpLast&quot; style=&quot;mso-list: l2 level1 lfo2; text-indent: -0.25in;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;In the above flows, OAUTH represents the permission granted using
a temporarily code called Authorization Code which allows this specific Client
Application to access this specific scope on behalf of this specific end-user and
can’t be used by any other user or any other Client Application.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;Once the authorization code is granted to the Client Application,
then the application can request for Access Token which can be used to call the
API.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;In general, no matter what is the flow we are using, Client
Application must aim to get the authorization code (the granted permission)
which allows it to get the access token that can be used for the API invocation.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkN7OLSBnKHX0pFffOwJ56_ZW_nJu-asUfZjJkBWt9KCcydW6xfSnBCG78JU5PDzQR1wkOiR6WE1XgJoQb7UCjw9OtLpqzocLw-Hw3viKmgqkcv73X6cp3OEN6S44fTWdOJJnV-dygzS_g/&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;800&quot; data-original-width=&quot;1043&quot; height=&quot;491&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkN7OLSBnKHX0pFffOwJ56_ZW_nJu-asUfZjJkBWt9KCcydW6xfSnBCG78JU5PDzQR1wkOiR6WE1XgJoQb7UCjw9OtLpqzocLw-Hw3viKmgqkcv73X6cp3OEN6S44fTWdOJJnV-dygzS_g/w640-h491/image.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p class=&quot;MsoNormal&quot;&gt;As per the above diagram, Client Application must follow the
below high-level procedure:&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;Step 1: Client Application need
to get the authorization code&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;/p&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;ol&gt;&lt;li&gt;&lt;b&gt;This step is only
required for Authorization Code Flow&lt;/b&gt;, authorization code can be retrieved by
redirecting the end-user to OAUTH server on URI &lt;span style=&quot;background: silver; font-family: &amp;quot;Courier New&amp;quot;; mso-highlight: silver;&quot;&gt;/authorize&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;Step 2: Get the access token
based on the retrieved authorization code&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;/p&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;ol&gt;&lt;li&gt;This is the same for both
flows&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;The access token can be
retrieved by calling the following URI &lt;/span&gt;&lt;span style=&quot;background: silver; font-family: &amp;quot;Courier New&amp;quot;; text-indent: -0.25in;&quot;&gt;/oauth/token&lt;/span&gt;&lt;span style=&quot;background: rgb(255, 255, 255); font-family: &amp;quot;Courier New&amp;quot;; text-indent: -0.25in;&quot;&gt;&amp;nbsp;&lt;/span&gt;by passing either client id/client secret or by passing the authorization code depends on the flow&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;Step 3:&amp;nbsp;Then you can call the API
using access token.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;/p&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;ol&gt;&lt;li&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;Access token has an
expiration that can last for several minutes, hours or even days depending on OAUTH
server configuration&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Client Application can keep
using the access token for multiple API calls as long as it is not expired&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;&lt;p class=&quot;MsoListParagraphCxSpLast&quot; style=&quot;margin-left: 1in; mso-add-space: auto; mso-list: l4 level2 lfo3; text-indent: -0.25in;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;b&gt;According to the above, you may ask what is the value of
using OAUTH Client Credentials flow? Can I just use Basic Authentication?&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;OAUTH Client Credentials flow provides two main benefits:&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;First benefit is related to API design. If your API need to
support two types of authorizations; one where an end-user involved and another
one with your trusted partners where no end-user is involved, with Basic
Authentication you need to provide two versions of the API: The first version
should support access token for authorizations that have end-uses involved, and
the second version should support Basic Authentication for trusted Client
Applications where no end-user is involved.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;If OAUTH is used for both cases, your API design will be
consistent as it will always expect access token regardless if there is an
end-user involved or not.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;The second benefit is related to the API security. With Basic
Authentication, the Client Application is required to send the Client Secret
with every single request which can be tracked and exposed by the hackers. With
OAUTH, if the access token is breached, it will be much easier to revoke it and
generate a new one without the need to revoke the client secret itself.&lt;/p&gt;

&lt;h2&gt;OpenID Connect in nutshell&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;It is important to note than we are talking here about OpenID
Connect not OpenID 1 nor OpenID 2 which are deprecated.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;OpenID Connect (OIDC) is an implementation on top of OAUTH
to get end-user details to support SSO and authentication. You can think with OIDC
as a backend API that allows the Client Application to retrieve the end-user
profile if the end-user give the permission.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;As explained before OAUTH consists from 4 main concepts:&lt;/p&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;Protected resource&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;Backend API that exposed
the protected resource&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Scopes&lt;/li&gt;&lt;li&gt;Authorization Flows&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;&lt;p class=&quot;MsoListParagraphCxSpLast&quot; style=&quot;mso-list: l1 level1 lfo4; text-indent: -0.25in;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;With OpenID Connect, the above concepts have been standardized
to support the user identification and authentication as following:&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;/p&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;With OIDC, the Protect
resource is the end-user details and it is standardized using especial purpose
JWT formatted Token called “ID Token”. ID Tokens are signed using the server private
key and Client Application can validate the ID Token using server public key which
can be retrieved from” &lt;/span&gt;&lt;span style=&quot;background: silver; font-family: &amp;quot;Courier New&amp;quot;; text-indent: -0.25in;&quot;&gt;/oidc/.well-known/openid-configuration&lt;/span&gt;&lt;/li&gt;&lt;li&gt;With OIDC, the Backend API is
the API that Client Application can call to get the end user details using URL &lt;span style=&quot;background: silver; font-family: &amp;quot;Courier New&amp;quot;; text-indent: -0.25in;&quot;&gt;/userinfo&lt;/span&gt;&lt;/li&gt;&lt;li&gt;With OIDC, the Scopes are standardized
to following 4 scopes:&lt;/li&gt;&lt;ol&gt;&lt;li&gt;openid; this is used to
validate the user’s identity without retrieving any data&lt;/li&gt;&lt;li&gt;profile; this is used to get
user name and any other available details&lt;/li&gt;&lt;li&gt;email; this is used to get
user’s email&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;With OIDC, the
Authorization Code Flow has been extended into the following 3 flows as
depicted in the below diagram&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;&lt;p class=&quot;MsoListParagraphCxSpLast&quot; style=&quot;mso-list: l0 level1 lfo5; text-indent: -0.25in;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvFLtivDxyYsuFXj-XNNnXUB4KCkcbac8bdPJf4WsvgT6cvZgusYOyD9jFCFr_nCy_5V_ZsdZB1Sl0BeeCFwQfe237u6-cofYYX6WZWa6rGYzpPboafJxIbjpEahyBCo14UYjm_FwkbFDz/&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;796&quot; data-original-width=&quot;1041&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvFLtivDxyYsuFXj-XNNnXUB4KCkcbac8bdPJf4WsvgT6cvZgusYOyD9jFCFr_nCy_5V_ZsdZB1Sl0BeeCFwQfe237u6-cofYYX6WZWa6rGYzpPboafJxIbjpEahyBCo14UYjm_FwkbFDz/&quot; width=&quot;628&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;As per the above flows, OIDC uses OAUTH to permit Client
Applications to get the user info that is required for SSO and authentication (and
it may also be used for self-registration).&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;h2&gt;SAML at a high-level&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;Now, it is the time to answer the question: what are the
differences between SAML and OIDC? Both are standards for user identification
and authentication and the following are the main high-level differences:&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;table border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoTable15Grid1Light&quot; style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid #999999 .5pt; mso-border-themecolor: text1; mso-border-themetint: 102; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-yfti-tbllook: 1184;&quot;&gt;
 &lt;tbody&gt;&lt;tr style=&quot;mso-yfti-firstrow: yes; mso-yfti-irow: -1; mso-yfti-lastfirstrow: yes;&quot;&gt;
  &lt;td style=&quot;border-bottom: solid #666666 1.5pt; border: 1pt solid rgb(153, 153, 153); mso-border-alt: solid #999999 .5pt; mso-border-bottom-alt: solid #666666 1.5pt; mso-border-bottom-themecolor: text1; mso-border-bottom-themetint: 153; mso-border-themecolor: text1; mso-border-themetint: 102; padding: 0in 5.4pt; width: 143.8pt;&quot; valign=&quot;top&quot; width=&quot;192&quot;&gt;
  &lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; mso-yfti-cnfc: 5;&quot;&gt;&lt;b&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style=&quot;border-bottom: 1.5pt solid rgb(102, 102, 102); border-left: none; border-right: 1pt solid rgb(153, 153, 153); border-top: 1pt solid rgb(153, 153, 153); mso-border-alt: solid #999999 .5pt; mso-border-bottom-alt: solid #666666 1.5pt; mso-border-bottom-themecolor: text1; mso-border-bottom-themetint: 153; mso-border-left-alt: solid #999999 .5pt; mso-border-left-themecolor: text1; mso-border-left-themetint: 102; mso-border-right-themecolor: text1; mso-border-right-themetint: 102; mso-border-themecolor: text1; mso-border-themetint: 102; mso-border-top-themecolor: text1; mso-border-top-themetint: 102; padding: 0in 5.4pt; width: 70.4pt;&quot; valign=&quot;top&quot; width=&quot;94&quot;&gt;
  &lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; mso-yfti-cnfc: 1;&quot;&gt;&lt;b&gt;OIDC&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style=&quot;border-bottom: 1.5pt solid rgb(102, 102, 102); border-left: none; border-right: 1pt solid rgb(153, 153, 153); border-top: 1pt solid rgb(153, 153, 153); mso-border-alt: solid #999999 .5pt; mso-border-bottom-alt: solid #666666 1.5pt; mso-border-bottom-themecolor: text1; mso-border-bottom-themetint: 153; mso-border-left-alt: solid #999999 .5pt; mso-border-left-themecolor: text1; mso-border-left-themetint: 102; mso-border-right-themecolor: text1; mso-border-right-themetint: 102; mso-border-themecolor: text1; mso-border-themetint: 102; mso-border-top-themecolor: text1; mso-border-top-themetint: 102; padding: 0in 5.4pt; width: 55.3pt;&quot; valign=&quot;top&quot; width=&quot;74&quot;&gt;
  &lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; mso-yfti-cnfc: 1;&quot;&gt;&lt;b&gt;SAML&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style=&quot;mso-yfti-irow: 0;&quot;&gt;
  &lt;td style=&quot;border-top: none; border: 1pt solid rgb(153, 153, 153); mso-border-alt: solid #999999 .5pt; mso-border-themecolor: text1; mso-border-themetint: 102; mso-border-top-alt: solid #999999 .5pt; mso-border-top-themecolor: text1; mso-border-top-themetint: 102; padding: 0in 5.4pt; width: 143.8pt;&quot; valign=&quot;top&quot; width=&quot;192&quot;&gt;
  &lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; mso-yfti-cnfc: 4;&quot;&gt;&lt;b&gt;Support Mobile Application&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style=&quot;border-bottom: 1pt solid rgb(153, 153, 153); border-left: none; border-right: 1pt solid rgb(153, 153, 153); border-top: none; mso-border-alt: solid #999999 .5pt; mso-border-bottom-themecolor: text1; mso-border-bottom-themetint: 102; mso-border-left-alt: solid #999999 .5pt; mso-border-left-themecolor: text1; mso-border-left-themetint: 102; mso-border-right-themecolor: text1; mso-border-right-themetint: 102; mso-border-themecolor: text1; mso-border-themetint: 102; mso-border-top-alt: solid #999999 .5pt; mso-border-top-themecolor: text1; mso-border-top-themetint: 102; padding: 0in 5.4pt; width: 70.4pt;&quot; valign=&quot;top&quot; width=&quot;94&quot;&gt;
  &lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in;&quot;&gt;Yes&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style=&quot;border-bottom: 1pt solid rgb(153, 153, 153); border-left: none; border-right: 1pt solid rgb(153, 153, 153); border-top: none; mso-border-alt: solid #999999 .5pt; mso-border-bottom-themecolor: text1; mso-border-bottom-themetint: 102; mso-border-left-alt: solid #999999 .5pt; mso-border-left-themecolor: text1; mso-border-left-themetint: 102; mso-border-right-themecolor: text1; mso-border-right-themetint: 102; mso-border-themecolor: text1; mso-border-themetint: 102; mso-border-top-alt: solid #999999 .5pt; mso-border-top-themecolor: text1; mso-border-top-themetint: 102; padding: 0in 5.4pt; width: 55.3pt;&quot; valign=&quot;top&quot; width=&quot;74&quot;&gt;
  &lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in;&quot;&gt;No&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style=&quot;mso-yfti-irow: 1;&quot;&gt;
  &lt;td style=&quot;border-top: none; border: 1pt solid rgb(153, 153, 153); mso-border-alt: solid #999999 .5pt; mso-border-themecolor: text1; mso-border-themetint: 102; mso-border-top-alt: solid #999999 .5pt; mso-border-top-themecolor: text1; mso-border-top-themetint: 102; padding: 0in 5.4pt; width: 143.8pt;&quot; valign=&quot;top&quot; width=&quot;192&quot;&gt;
  &lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; mso-yfti-cnfc: 4;&quot;&gt;&lt;b&gt;Simplicity&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style=&quot;border-bottom: 1pt solid rgb(153, 153, 153); border-left: none; border-right: 1pt solid rgb(153, 153, 153); border-top: none; mso-border-alt: solid #999999 .5pt; mso-border-bottom-themecolor: text1; mso-border-bottom-themetint: 102; mso-border-left-alt: solid #999999 .5pt; mso-border-left-themecolor: text1; mso-border-left-themetint: 102; mso-border-right-themecolor: text1; mso-border-right-themetint: 102; mso-border-themecolor: text1; mso-border-themetint: 102; mso-border-top-alt: solid #999999 .5pt; mso-border-top-themecolor: text1; mso-border-top-themetint: 102; padding: 0in 5.4pt; width: 70.4pt;&quot; valign=&quot;top&quot; width=&quot;94&quot;&gt;
  &lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in;&quot;&gt;Simple&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style=&quot;border-bottom: 1pt solid rgb(153, 153, 153); border-left: none; border-right: 1pt solid rgb(153, 153, 153); border-top: none; mso-border-alt: solid #999999 .5pt; mso-border-bottom-themecolor: text1; mso-border-bottom-themetint: 102; mso-border-left-alt: solid #999999 .5pt; mso-border-left-themecolor: text1; mso-border-left-themetint: 102; mso-border-right-themecolor: text1; mso-border-right-themetint: 102; mso-border-themecolor: text1; mso-border-themetint: 102; mso-border-top-alt: solid #999999 .5pt; mso-border-top-themecolor: text1; mso-border-top-themetint: 102; padding: 0in 5.4pt; width: 55.3pt;&quot; valign=&quot;top&quot; width=&quot;74&quot;&gt;
  &lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in;&quot;&gt;Complex&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style=&quot;mso-yfti-irow: 2; mso-yfti-lastrow: yes;&quot;&gt;
  &lt;td style=&quot;border-top: none; border: 1pt solid rgb(153, 153, 153); mso-border-alt: solid #999999 .5pt; mso-border-themecolor: text1; mso-border-themetint: 102; mso-border-top-alt: solid #999999 .5pt; mso-border-top-themecolor: text1; mso-border-top-themetint: 102; padding: 0in 5.4pt; width: 143.8pt;&quot; valign=&quot;top&quot; width=&quot;192&quot;&gt;
  &lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; mso-yfti-cnfc: 4;&quot;&gt;&lt;b&gt;Data Format&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style=&quot;border-bottom: 1pt solid rgb(153, 153, 153); border-left: none; border-right: 1pt solid rgb(153, 153, 153); border-top: none; mso-border-alt: solid #999999 .5pt; mso-border-bottom-themecolor: text1; mso-border-bottom-themetint: 102; mso-border-left-alt: solid #999999 .5pt; mso-border-left-themecolor: text1; mso-border-left-themetint: 102; mso-border-right-themecolor: text1; mso-border-right-themetint: 102; mso-border-themecolor: text1; mso-border-themetint: 102; mso-border-top-alt: solid #999999 .5pt; mso-border-top-themecolor: text1; mso-border-top-themetint: 102; padding: 0in 5.4pt; width: 70.4pt;&quot; valign=&quot;top&quot; width=&quot;94&quot;&gt;
  &lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in;&quot;&gt;JSON &amp;amp; JWT&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style=&quot;border-bottom: 1pt solid rgb(153, 153, 153); border-left: none; border-right: 1pt solid rgb(153, 153, 153); border-top: none; mso-border-alt: solid #999999 .5pt; mso-border-bottom-themecolor: text1; mso-border-bottom-themetint: 102; mso-border-left-alt: solid #999999 .5pt; mso-border-left-themecolor: text1; mso-border-left-themetint: 102; mso-border-right-themecolor: text1; mso-border-right-themetint: 102; mso-border-themecolor: text1; mso-border-themetint: 102; mso-border-top-alt: solid #999999 .5pt; mso-border-top-themecolor: text1; mso-border-top-themetint: 102; padding: 0in 5.4pt; width: 55.3pt;&quot; valign=&quot;top&quot; width=&quot;74&quot;&gt;
  &lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in;&quot;&gt;XML&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;h2&gt;Summary&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;OAUTH is meant for users or applications authorization, OIDC
is build on top of OAUTH to support user identification and authentication and
SAML is another standard for user identification and authentication.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;If you are an API developer, you should focus on OAUTH standard
and accordingly, your API should be built to authorize the requests based on
the provided access token.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://raikblog.blogspot.com/feeds/5772196379157573302/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://raikblog.blogspot.com/2021/02/oauth-and-openid-connect-in-nutshell.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/5772196379157573302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/5772196379157573302'/><link rel='alternate' type='text/html' href='http://raikblog.blogspot.com/2021/02/oauth-and-openid-connect-in-nutshell.html' title='OAuth and OpenID Connect Clarifications'/><author><name>Haitham Raik</name><uri>http://www.blogger.com/profile/04008662680572575275</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkN7OLSBnKHX0pFffOwJ56_ZW_nJu-asUfZjJkBWt9KCcydW6xfSnBCG78JU5PDzQR1wkOiR6WE1XgJoQb7UCjw9OtLpqzocLw-Hw3viKmgqkcv73X6cp3OEN6S44fTWdOJJnV-dygzS_g/s72-w640-h491-c/image.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7677652326497115767.post-5356240564016931454</id><published>2021-02-11T15:58:00.002+03:00</published><updated>2021-03-09T15:47:32.220+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="API"/><category scheme="http://www.blogger.com/atom/ns#" term="API Generations"/><category scheme="http://www.blogger.com/atom/ns#" term="API History"/><category scheme="http://www.blogger.com/atom/ns#" term="Application Programming Interface"/><title type='text'>API Definition and API History</title><content type='html'>&lt;br /&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;Introduction&lt;/h2&gt;&lt;p&gt;One of the most confusing questions I usually have is &quot;What are the differences between API and webservices&quot;?&amp;nbsp;&lt;/p&gt;&lt;p&gt;In order to answer this question we need to understand first what API means?&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;Definition&lt;/h3&gt;&lt;p&gt;API stands for Application Programming Interface and as its name implies, it is an interface that allows any piece of code to interact programmatically with another piece of code. The piece of code can be library, component, resource or even a different application.&lt;/p&gt;&lt;p&gt;The APIs can be an internal interface that allowing native interactions such as calling a reusable library or component within the same application and with the same deployment environment. While the external APIs allow remote interactions such as calling another component for the same application deployed on a different environment in a distributed application architecture or even calling another application. The external interactions require a network communication supported by a network protocol (e.g., HTTP, JMS, TCP, etc.).&lt;/p&gt;&lt;p&gt;Well designed APIs (internal or external), can increase the solution reusability, hide implementation complexity, and decreases the clients dependencies on the implementation which allows the implementation to evolve Independently without affecting the clients.&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;In the below diagram, the java interface called &quot;SearchI&quot; is considered an API that allows the client code to interact with the searching implementation without getting coupled to the underling implementation:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3gaZMHMVjF6yxanzj_39W_SfGe_fK2yh-j41uZZgxNuoELHB1UAf64ZCMh00EykFJ1R_o2aLvVoldb0DvazxYEQYEGFhr-nFQnpdS1kcO2fIlzuByZ21TObJFx_B_CK56N98k7_RDcmiC/&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;427&quot; data-original-width=&quot;671&quot; height=&quot;204&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3gaZMHMVjF6yxanzj_39W_SfGe_fK2yh-j41uZZgxNuoELHB1UAf64ZCMh00EykFJ1R_o2aLvVoldb0DvazxYEQYEGFhr-nFQnpdS1kcO2fIlzuByZ21TObJFx_B_CK56N98k7_RDcmiC/&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;In the above diagram, if we decided to change the BinarySearch class with LinearSearch, the client will not be affected as long as the interface specifications are not changed.&lt;/p&gt;&lt;p&gt;APIs usually consists from three components:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;The activities that can be performed by the underling implementation&lt;/li&gt;&lt;ol&gt;&lt;li&gt;An example for internal API activities is the list of methods defined in the java interface&lt;/li&gt;&lt;li&gt;An example for external API activities is the list of operations defined in a webservice WSDL&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;The data model that describes the entities and attributes need to be exchanged with the interface&lt;/li&gt;&lt;ol&gt;&lt;li&gt;An example for data model is CompanyProfile entity that need to be passed to the API to perform a specific activity&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;The data format that describes the shape of the data&lt;/li&gt;&lt;ol&gt;&lt;li&gt;For internal APIs, the data format can be as per the programming language native formats&lt;/li&gt;&lt;li&gt;For external APIs, the data format can be SOAP, JSON, or even serialized binary format such as gRPC.&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;&lt;b&gt;API Generations&lt;/b&gt;&lt;/h3&gt;&lt;p&gt;API went through 4 generations as illustrated in the below timeline:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4m2mIb7IbBF4JyXiAVCX81O2iyY8iJxydBiQiEnSsbTlCKDIhAZtONGrjeeRr_46-KTUu_PLggYk4ZjVOtsILnUhq7MPSmzruGaWRo6JuV9X3irtbWLKYtrWGntikOS26nRZjqYLOXrLa/&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;1280&quot; data-original-width=&quot;1473&quot; height=&quot;557&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4m2mIb7IbBF4JyXiAVCX81O2iyY8iJxydBiQiEnSsbTlCKDIhAZtONGrjeeRr_46-KTUu_PLggYk4ZjVOtsILnUhq7MPSmzruGaWRo6JuV9X3irtbWLKYtrWGntikOS26nRZjqYLOXrLa/w640-h557/image.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p style=&quot;text-align: left;&quot;&gt;As depicted by the above diagram, the REST-based and SOAP-based Webservices are considered as styles of the 3rd generation APIs where remote API calls can be performed over internet using mainly HTTP protocol.&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;In the following diagram, we will zoom in the Web API generation and see how the Web API has evolved:&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span id=&quot;docs-internal-guid-360d2f4e-7fff-10f0-0849-9b1eb3e09807&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;&lt;span style=&quot;border: none; display: inline-block; height: 252px; overflow: hidden; width: 624px;&quot;&gt;&lt;img height=&quot;252&quot; src=&quot;https://lh4.googleusercontent.com/O9gSwtOea3gVSLFGqdwXZ2PCxYXnpCHGjWfpEWftxc8LcvSsf1V6ZjQAY67wB8DxGP50fOAx27kMN0NAP4s02zU9-3MIsHxCKHRxfC77c0RDVR2aPwWnEeE0Seg1QJTcC4Cegymj&quot; style=&quot;margin-left: 0px; margin-top: 0px;&quot; width=&quot;624&quot; /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;Conclusion&lt;/h3&gt;&lt;p style=&quot;text-align: left;&quot;&gt;It is clear now that asking about the differences between APIs and Webservices is not valid and the right question is supposed to be &quot;which type of APIs is the webservices?&quot;.&amp;nbsp;&amp;nbsp;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://raikblog.blogspot.com/feeds/5356240564016931454/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://raikblog.blogspot.com/2021/02/api-definition-and-history.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/5356240564016931454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/5356240564016931454'/><link rel='alternate' type='text/html' href='http://raikblog.blogspot.com/2021/02/api-definition-and-history.html' title='API Definition and API History'/><author><name>Haitham Raik</name><uri>http://www.blogger.com/profile/04008662680572575275</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3gaZMHMVjF6yxanzj_39W_SfGe_fK2yh-j41uZZgxNuoELHB1UAf64ZCMh00EykFJ1R_o2aLvVoldb0DvazxYEQYEGFhr-nFQnpdS1kcO2fIlzuByZ21TObJFx_B_CK56N98k7_RDcmiC/s72-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7677652326497115767.post-4245254388122234219</id><published>2021-01-17T13:11:00.019+03:00</published><updated>2021-03-13T12:10:41.419+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Agile"/><category scheme="http://www.blogger.com/atom/ns#" term="Agility"/><category scheme="http://www.blogger.com/atom/ns#" term="Arcitura"/><category scheme="http://www.blogger.com/atom/ns#" term="Design Patterns"/><category scheme="http://www.blogger.com/atom/ns#" term="DevOps"/><category scheme="http://www.blogger.com/atom/ns#" term="Mapping"/><category scheme="http://www.blogger.com/atom/ns#" term="Microservices Architecture"/><category scheme="http://www.blogger.com/atom/ns#" term="Microservices Design Patterns"/><category scheme="http://www.blogger.com/atom/ns#" term="Microservices Drivers"/><category scheme="http://www.blogger.com/atom/ns#" term="Microservices.io"/><category scheme="http://www.blogger.com/atom/ns#" term="MSA"/><category scheme="http://www.blogger.com/atom/ns#" term="Performance"/><category scheme="http://www.blogger.com/atom/ns#" term="Reliability"/><category scheme="http://www.blogger.com/atom/ns#" term="Scalability"/><title type='text'>Microservices Design Patterns (Arcitura vs Microservices.io vs Microsoft)</title><content type='html'>&lt;span id=&quot;docs-internal-guid-9da3819c-7fff-3cb3-513e-0cc34000e6e1&quot;&gt;
	&lt;p dir=&quot;ltr&quot; style=&quot;background-color: white; line-height: 1.656; margin-bottom: 0pt; margin-left: 36pt; margin-top: 0pt; text-align: justify;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;In the market today, there are 3 schools for Microservices Design Patterns; Microsoft, Microservices.io and Arcitura.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;background-color: white; line-height: 1.656; margin-bottom: 0pt; margin-left: 36pt; margin-top: 0pt; text-align: justify;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;The three schools propose 86 different design patterns, with different names, providing solutions to achieve the Microservices &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #333333; font-family: Arial; font-size: 10.5pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #333333; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;drivers (Agility and Scalability).&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;background-color: white; line-height: 1.656; margin-bottom: 0pt; margin-left: 36pt; margin-top: 0pt; text-align: justify;&quot;&gt;&lt;/p&gt;&lt;ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Total Design Patterns provided by Arcitura is 41 Design Patterns (11 of them are inherited from SOA Design Patterns), &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #333333; font-family: Arial; font-size: 10.5pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #333333; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;12 of them are unique for Arcitura.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; white-space: pre-wrap;&quot;&gt;Total Design Patterns provided by Microservices.io is 47 Design Patterns, 20 of them are unique for Microservices.io&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; white-space: pre-wrap;&quot;&gt;Total Design Patterns provided by Microsoft is 37 design pattern, 16 of them are unique for Microsoft&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Only 24 design patterns are shared between Arcitura and Microservices.io (Note: 2 design patterns from &lt;span style=&quot;background-color: transparent; color: #333333; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Arcitura are mapped to 5 design patterns from Microservices.io)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Only 6 design patterns are shared between Arcitura and Microsoft&lt;/li&gt;&lt;li&gt;Only 2 design patterns are shared between Microsoft and Microservices.io&lt;/li&gt;&lt;li&gt;Only 16 design patterns are shared between Arcitura and Microservices.io&lt;/li&gt;&lt;li&gt;Only 13 design patterns are shared between the 3 schools (highlighted in gray)&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;background-color: white; line-height: 1.656; margin-bottom: 0pt; margin-left: 36pt; margin-top: 0pt; text-align: justify;&quot;&gt;Arcitura and Microsoft focus more on the Deployment, Performance, Scalability and Reliability&amp;nbsp;&lt;span style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; white-space: pre-wrap;&quot;&gt;Patterns, while Microservices.io focus more on the Decomposition, Development, &lt;/span&gt;&lt;span style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; white-space: pre-wrap;&quot;&gt;Testing, Traceability and Transaction processing patterns.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;background-color: white; line-height: 1.656; margin-bottom: 0pt; margin-left: 36pt; margin-top: 0pt; text-align: justify;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; white-space: pre-wrap;&quot;&gt;For people looking for agility, it would be recommended for them to refer to Microservices.io&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;background-color: white; line-height: 1.656; margin-bottom: 0pt; margin-left: 36pt; margin-top: 0pt; text-align: justify;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #333333; font-family: Arial; font-size: 11pt; white-space: pre-wrap;&quot;&gt;For people looking for performance, scalability and reliability, it would be recommended for them to refer to Arcitura&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;background-color: white; line-height: 1.656; margin-bottom: 0pt; margin-left: 36pt; margin-top: 0pt; text-align: justify;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; white-space: pre-wrap;&quot;&gt;The below table maps the the different design patterns from the three schools with the related products and technologies&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;background-color: white; line-height: 1.656; margin-bottom: 0pt; margin-left: 36pt; margin-top: 0pt; text-align: justify;&quot;&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; white-space: pre-wrap;&quot;&gt;Note: Design pattern named CQRS in Microsoft is different than the one in Microservices.io&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;background-color: white; line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;&quot;&gt;&lt;b id=&quot;docs-internal-guid-77e3252f-7fff-de13-c914-ce8b074f6cb5&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;div align=&quot;left&quot; dir=&quot;ltr&quot; style=&quot;margin-left: 2.25pt;&quot;&gt;&lt;table style=&quot;border-collapse: collapse; border: none;&quot;&gt;&lt;colgroup&gt;&lt;col width=&quot;35&quot;&gt;&lt;/col&gt;&lt;col width=&quot;257&quot;&gt;&lt;/col&gt;&lt;col width=&quot;147&quot;&gt;&lt;/col&gt;&lt;col width=&quot;115&quot;&gt;&lt;/col&gt;&lt;col width=&quot;79&quot;&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr style=&quot;height: 0pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;#&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Microsoft&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Arcitura&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Microservices.io&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Related Product/ Tech&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td colspan=&quot;4&quot; style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Decomposition &amp;amp; Layering&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;ol style=&quot;margin-bottom: 0; margin-top: 0; padding-inline-start: 48px;&quot;&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; margin-left: -18pt; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;1. &lt;/span&gt;&lt;a href=&quot;https://patterns.arcitura.com/microservice-patterns/design_patterns/micro_task_abstraction&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Micro Task Abstraction&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;ol start=&quot;2&quot; style=&quot;margin-bottom: 0; margin-top: 0; padding-inline-start: 48px;&quot;&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; margin-left: -18pt; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;1. &lt;/span&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/azure/architecture/patterns/cqrs&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;CQRS&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;2. &lt;/span&gt;&lt;a href=&quot;https://patterns.arcitura.com/microservice-patterns/design_patterns/micro_task_segregation&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Micro Task Segregation&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;ol start=&quot;3&quot; style=&quot;margin-bottom: 0; margin-top: 0; padding-inline-start: 48px;&quot;&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; margin-left: -18pt; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;1. &lt;/span&gt;&lt;a href=&quot;https://microservices.io/patterns/decomposition/decompose-by-business-capability.html&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Decompose by business capability&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;ol start=&quot;4&quot; style=&quot;margin-bottom: 0; margin-top: 0; padding-inline-start: 48px;&quot;&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; margin-left: -18pt; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;2. &lt;/span&gt;&lt;a href=&quot;https://microservices.io/patterns/decomposition/decompose-by-subdomain.html&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Decompose by subdomain&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;ol start=&quot;5&quot; style=&quot;margin-bottom: 0; margin-top: 0; padding-inline-start: 48px;&quot;&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; margin-left: -18pt; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;3. &lt;/span&gt;&lt;a href=&quot;https://microservices.io/patterns/decomposition/service-per-team.html&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Service per Team&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;ol start=&quot;6&quot; style=&quot;margin-bottom: 0; margin-top: 0; padding-inline-start: 48px;&quot;&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; margin-left: -18pt; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;3. &lt;/span&gt;&lt;a href=&quot;https://patterns.arcitura.com/microservice-patterns/design_patterns/microservice_layers&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Microservice Layers&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;ol start=&quot;7&quot; style=&quot;margin-bottom: 0; margin-top: 0; padding-inline-start: 48px;&quot;&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; margin-left: -18pt; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;2. &lt;/span&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/azure/architecture/patterns/strangler-fig&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Strangler Fig&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td colspan=&quot;4&quot; style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Deployment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;ol start=&quot;8&quot; style=&quot;margin-bottom: 0; margin-top: 0; padding-inline-start: 48px;&quot;&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; margin-left: -18pt; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;3. &lt;/span&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/azure/architecture/patterns/deployment-stamp&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Deployment stamps&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;4. &lt;/span&gt;&lt;a href=&quot;https://patterns.arcitura.com/microservice-patterns/design_patterns/composition_autonomy&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Composition Autonomy&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt; (SOA)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;4. &lt;/span&gt;&lt;a href=&quot;https://microservices.io/patterns/decomposition/self-contained-service.html&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Self-Contained Service&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Docker Compose&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;9.&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;5. &lt;/span&gt;&lt;a href=&quot;https://patterns.arcitura.com/microservice-patterns/design_patterns/microservice_deployment&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Microservice Deployment&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;5. &lt;/span&gt;&lt;a href=&quot;https://microservices.io/patterns/deployment/service-deployment-platform.html&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Service deployment platform&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Docker&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Kubernetes&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;10.&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;4. &lt;/span&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/azure/architecture/patterns/compute-resource-consolidation&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Compute Resource Consolidation&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;6. &lt;/span&gt;&lt;a href=&quot;https://patterns.arcitura.com/microservice-patterns/design_patterns/single_node_multicontainer&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Single Node Multi-Containers&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;6. &lt;/span&gt;&lt;a href=&quot;https://microservices.io/patterns/deployment/multiple-services-per-host.html&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Multiple service instances per host&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Docker&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;11.&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;7. &lt;/span&gt;&lt;a href=&quot;https://patterns.arcitura.com/microservice-patterns/design_patterns/rich_container&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Rich Container&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Docker&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Kubernetes&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;12.&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;8. &lt;/span&gt;&lt;a href=&quot;https://patterns.arcitura.com/microservice-patterns/design_patterns/logical_pod_container&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Logical Pod Container&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Kubernetes Pod&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Openshift Pod&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;13.&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;9. &lt;/span&gt;&lt;a href=&quot;https://patterns.arcitura.com/microservice-patterns/design_patterns/serverless_microservice_deployment&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Serverless Microservice Deployment&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;7. &lt;/span&gt;&lt;a href=&quot;https://microservices.io/patterns/deployment/serverless-deployment.html&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Serverless deployment&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;AWS Lambda&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Google Cloud Functions&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Azure Functions&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;14.&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;10. &lt;/span&gt;&lt;a href=&quot;https://patterns.arcitura.com/microservice-patterns/design_patterns/multi_container_lsolation_control&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Multi-Container Isolation Control&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Openshift Pod&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;15.&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td rowspan=&quot;3&quot; style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;11. &lt;/span&gt;&lt;a href=&quot;https://patterns.arcitura.com/microservice-patterns/design_patterns/microservice_lsolation_levels&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Microservice Isolation Levels&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;8. &lt;/span&gt;&lt;a href=&quot;https://microservices.io/patterns/deployment/single-service-per-host.html&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Service instance per host&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;16.&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;9. &lt;/span&gt;&lt;a href=&quot;https://microservices.io/patterns/deployment/service-per-vm.html&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Service instance per VM&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;VMWare, vSphere, Amazon AWS&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;17.&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;10. &lt;/span&gt;&lt;a href=&quot;https://microservices.io/patterns/deployment/service-per-container.html&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Service instance per Container&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Docker&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Kubernetes&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td colspan=&quot;4&quot; style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Data Management &amp;amp; Data Interchange&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;18&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;12. &lt;/span&gt;&lt;a href=&quot;https://patterns.arcitura.com/microservice-patterns/design_patterns/dedicated_microservice_database&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Dedicated Microservice Database&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://patterns.arcitura.com/soa-patterns/design_patterns/service_data_replication&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Service Data Replication &lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;(SOA)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;11. &lt;/span&gt;&lt;a href=&quot;https://microservices.io/patterns/data/database-per-service.html&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Database per service&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Any Database (MySQL, Oracle)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;19&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;13. &lt;/span&gt;&lt;a href=&quot;https://patterns.arcitura.com/microservice-patterns/design_patterns/shared_isolated_database&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Shared Isolated Database&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;12. &lt;/span&gt;&lt;a href=&quot;https://microservices.io/patterns/data/shared-database.html&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Shared Database&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Any Database (MySQL, Oracle)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;20&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;5. &lt;/span&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/azure/architecture/patterns/materialized-view&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Materialized View&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;14. &lt;/span&gt;&lt;a href=&quot;https://patterns.arcitura.com/microservice-patterns/design_patterns/pre-defined_dataview&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Pre-Defined Data View&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;13. &lt;/span&gt;&lt;a href=&quot;https://microservices.io/patterns/data/cqrs.html&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;CQRS&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Any Database (MySQL, Oracle)&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Eventuate&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;21&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;6.&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/azure/architecture/patterns/gateway-aggregation&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Gateway Aggregation&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;15. &lt;/span&gt;&lt;a href=&quot;https://patterns.arcitura.com/microservice-patterns/design_patterns/microservice_compositor&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Microservice Compositor&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;14. &lt;/span&gt;&lt;a href=&quot;https://microservices.io/patterns/data/api-composition.html&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;API Composition&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Compoxure&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Netflix Zuul&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;22&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;7. &lt;/span&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/azure/architecture/patterns/gateway-routing&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Gateway Routing&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;16. &lt;/span&gt;&lt;a href=&quot;https://patterns.arcitura.com/microservice-patterns/design_patterns/autonomous_proxy_service&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Autonomous Proxy Service&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;15. &lt;/span&gt;&lt;a href=&quot;https://microservices.io/patterns/apigateway.html&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;API Gateway&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NGINX&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Netflix Zuul&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;23&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;17. &lt;/span&gt;&lt;a href=&quot;https://patterns.arcitura.com/microservice-patterns/design_patterns/centralized_stat_rapsitor&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Centralized Isolated State Repository&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Apache Zookeeper&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;24&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;18. &lt;/span&gt;&lt;a href=&quot;https://patterns.arcitura.com/microservice-patterns/design_patterns/syncronized_cross-instance_events&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Synchronized Cross-Instance Events&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;16. &lt;/span&gt;&lt;a href=&quot;https://microservices.io/patterns/data/domain-event.html&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Domain Event&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Azure Cosmos&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Eventuate&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;25&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;8. &lt;/span&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/azure/architecture/patterns/sharding&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Sharding&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td colspan=&quot;4&quot; style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Transactional Messaging&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;26&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;17. &lt;/span&gt;&lt;a href=&quot;https://microservices.io/patterns/data/transactional-outbox.html&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Transactional outbox&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;27&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;18. &lt;/span&gt;&lt;a href=&quot;https://microservices.io/patterns/data/transaction-log-tailing.html&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Transaction log tailing&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Eventuate Tram&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;28&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;19. &lt;/span&gt;&lt;a href=&quot;https://microservices.io/patterns/data/polling-publisher.html&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Polling publisher&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Eventuate Tram&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: #efefef; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;29&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: #efefef; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;9. &lt;/span&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/azure/architecture/patterns/compensating-transaction&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: #efefef; color: #1155cc; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Compensating Transaction&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: #efefef; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;19. &lt;/span&gt;&lt;a href=&quot;https://patterns.arcitura.com/soa-patterns/design_patterns/compensating_service_transaction&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: #efefef; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Compensating Service Transaction&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: #efefef; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;20. &lt;/span&gt;&lt;a href=&quot;https://microservices.io/patterns/data/saga.html&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: #efefef; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Saga&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: #efefef; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt; Eventuate&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td colspan=&quot;4&quot; style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Integration &amp;amp; Event Processing&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;30&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;10.&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/azure/architecture/patterns/sidecar&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Sidecar&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;20. &lt;/span&gt;&lt;a href=&quot;https://patterns.arcitura.com/microservice-patterns/design_patterns/container_sidecar&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Container sidecar&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;AirBnB SmartStack&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;31&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;11. &lt;/span&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/azure/architecture/patterns/ambassador&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Ambassador&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;21. &lt;/span&gt;&lt;a href=&quot;https://patterns.arcitura.com/microservice-patterns/design_patterns/microservice_ambassador&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Microservice Ambassador&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Docker Ambassador&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;32&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;22. &lt;/span&gt;&lt;a href=&quot;https://patterns.arcitura.com/soa-patterns/design_patterns/service_messaging&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Service Messaging&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt; (SOA)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;21. &lt;/span&gt;&lt;a href=&quot;https://microservices.io/patterns/communication-style/rpi.html&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Remote Procedure Invocation&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: #fff2cc; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Rest&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: #fff2cc; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;gRPC&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: #fff2cc; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Apache Thrift&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;33&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;12. &lt;/span&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/azure/architecture/patterns/competing-consumers&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Competing Consumers&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td rowspan=&quot;4&quot; style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;23. &lt;/span&gt;&lt;a href=&quot;https://patterns.arcitura.com/soa-patterns/design_patterns/asynchronous_queuing&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Async Queuing&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt; (SOA)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td rowspan=&quot;4&quot; style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;22. &lt;/span&gt;&lt;a href=&quot;https://microservices.io/patterns/communication-style/messaging.html&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Async Messaging&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Apache Kafka&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;RabbitMQ&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Anypoint MQ&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;34&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;13. &lt;/span&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/azure/architecture/patterns/queue-based-load-leveling&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Queue-Based Load Leveling&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;35&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;14. &lt;/span&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/azure/architecture/patterns/async-request-reply&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Async Request-Reply&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;36&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;15. &lt;/span&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/azure/architecture/patterns/sequential-convoy&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Sequential Convoy&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;37&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;24. &lt;/span&gt;&lt;a href=&quot;https://patterns.arcitura.com/soa-patterns/design_patterns/canonical_protocol&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Canonical Protocol&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt; (SOA)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;23. &lt;/span&gt;&lt;a href=&quot;https://microservices.io/patterns/communication-style/domain-specific.html&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Domain-specific Protocol&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;HTTP&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;SMTP&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;IMAP&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;38&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;25. &lt;/span&gt;&lt;a href=&quot;https://patterns.arcitura.com/soa-patterns/design_patterns/idempotent_capability&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Idempotent Capability&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt; (SOA)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;24. &lt;/span&gt;&lt;a href=&quot;https://microservices.io/patterns/communication-style/idempotent-consumer.html&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Idempotent Consumer&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;39&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;16. &lt;/span&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/azure/architecture/patterns/event-sourcing&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Event Sourcing&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;26. &lt;/span&gt;&lt;a href=&quot;https://patterns.arcitura.com/microservice-patterns/design_patterns/appended_events&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Appended Events&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;25. &lt;/span&gt;&lt;a href=&quot;https://microservices.io/patterns/data/event-sourcing.html&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Event Sourcing&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Kafka&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;MapR Streams&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Eventuate&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;40&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;27. &lt;/span&gt;&lt;a href=&quot;https://patterns.arcitura.com/microservice-patterns/design_patterns/atomic_event_processing&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Atomic Event Processing&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Anypoint MQ&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;41&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;17. &lt;/span&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/azure/architecture/patterns/publisher-subscriber&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Publisher/Subscriber&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;28. &lt;/span&gt;&lt;a href=&quot;https://patterns.arcitura.com/microservice-patterns/design_patterns/event_driven_messaging&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Event-Driven Messaging&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt; (SOA)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Anypoint MQ&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;42&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;18. &lt;/span&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/azure/architecture/patterns/choreography&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Choreography&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;43&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;19. &lt;/span&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/azure/architecture/patterns/anti-corruption-layer&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Anti-Corruption Layer&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;44&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;20. &lt;/span&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/azure/architecture/patterns/pipes-and-filters&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Pipes and Filters&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;45&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;21. &lt;/span&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/azure/architecture/patterns/scheduler-agent-supervisor&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Scheduler Agent Supervisor&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td colspan=&quot;4&quot; style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Registry and Discovery&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;46&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;29. &lt;/span&gt;&lt;a href=&quot;https://patterns.arcitura.com/soa-patterns/design_patterns/metadata_centralization&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Metadata Centralization&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;26. &lt;/span&gt;&lt;a href=&quot;https://microservices.io/patterns/service-registry.html&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Service registry&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;47&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td rowspan=&quot;2&quot; style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;30. &lt;/span&gt;&lt;a href=&quot;https://patterns.arcitura.com/microservice-patterns/design_patterns/microservice_lnstance_registration&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Microservice Instance Registration&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;27. &lt;/span&gt;&lt;a href=&quot;https://microservices.io/patterns/self-registration.html&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Self Registration&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Netflix Eureka&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;48&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;28. &lt;/span&gt;&lt;a href=&quot;https://microservices.io/patterns/3rd-party-registration.html&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;3rd Party Registration&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Netflix Prana&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;AWS Autoscaling Groups&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Registrator&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;49&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;29. &lt;/span&gt;&lt;a href=&quot;https://microservices.io/patterns/client-side-discovery.html&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Client-side discovery&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;50&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;30. &lt;/span&gt;&lt;a href=&quot;https://microservices.io/patterns/server-side-discovery.html&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Server-side discovery&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td colspan=&quot;4&quot; style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Scalability &amp;amp; Reliability&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;51&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;31. &lt;/span&gt;&lt;a href=&quot;https://patterns.arcitura.com/microservice-patterns/design_patterns/dynamic_scalability&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Dynamic Scalability&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Amazon AWS Dynamic Scaling&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;52&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;32. &lt;/span&gt;&lt;a href=&quot;https://patterns.arcitura.com/microservice-patterns/design_patterns/service_load_balancing&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Service Load Balancing&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Amazon Elastic&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;F5 Load Balancer&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;53&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;33. &lt;/span&gt;&lt;a href=&quot;https://patterns.arcitura.com/microservice-patterns/design_patterns/workload_distribution&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Workload Distribution&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;VMWare DRS&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;54&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;34. &lt;/span&gt;&lt;a href=&quot;https://patterns.arcitura.com/microservice-patterns/design_patterns/container_chain&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Container Chain&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Kubernetes Init Container&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;55&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;22. &lt;/span&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/azure/architecture/patterns/leader-election&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Leader Election&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;35. &lt;/span&gt;&lt;a href=&quot;https://patterns.arcitura.com/microservice-patterns/design_patterns/leader_node_election&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Leader Node Election&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;ZooKeeper&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;56&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;36. &lt;/span&gt;&lt;a href=&quot;https://patterns.arcitura.com/microservice-patterns/design_patterns/micro_scatter_author&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Micro Scatter-Gather&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Apache Camel&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Spring Integration&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;57&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;23. &lt;/span&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/azure/architecture/patterns/backends-for-frontends&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Backends for Frontends&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;37. &lt;/span&gt;&lt;a href=&quot;https://patterns.arcitura.com/microservice-patterns/design_patterns/redundant_implementation&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Redundant Implementation &lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;(SOA)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Amazon AWS&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Docker&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;58&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;38. &lt;/span&gt;&lt;a href=&quot;https://patterns.arcitura.com/microservice-patterns/design_patterns/volatile_configuration&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Volatile Configuration&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Docker&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;59&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;24. &lt;/span&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/azure/architecture/patterns/circuit-breaker&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Circuit Breaker&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;31. &lt;/span&gt;&lt;a href=&quot;https://microservices.io/patterns/reliability/circuit-breaker.html&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Circuit Breaker&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;60&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;25. &lt;/span&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/azure/architecture/patterns/bulkhead&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Bulkhead&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;61&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;26. &lt;/span&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/azure/architecture/patterns/cache-aside&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Cache-Aside&amp;nbsp;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;62&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;27. &lt;/span&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/azure/architecture/patterns/claim-check&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Claim-Check&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;63&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;28. &lt;/span&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/azure/architecture/patterns/geodes&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Geodes&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;64&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;29. &lt;/span&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/azure/architecture/patterns/retry&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Retry&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;65&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;30. &lt;/span&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/azure/architecture/patterns/index-table&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Index Table&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;66&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;31. &lt;/span&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/azure/architecture/patterns/throttling&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Throttling&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td colspan=&quot;4&quot; style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Utility&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;67&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;32. &lt;/span&gt;&lt;a href=&quot;https://microservices.io/patterns/microservice-chassis.html&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Microservice chassis&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Spring Boot&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;DropWizard&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;68&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;33. &lt;/span&gt;&lt;a href=&quot;https://microservices.io/patterns/service-template.html&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Service Template&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;69&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;32. &lt;/span&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/azure/architecture/patterns/external-configuration-store&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;External Configuration Store&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;34. &lt;/span&gt;&lt;a href=&quot;https://microservices.io/patterns/externalized-configuration.html&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Externalized configuration&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;70&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;33. &lt;/span&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/azure/architecture/patterns/gateway-offloading&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Gateway Offloading&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;71&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;34. &lt;/span&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/azure/architecture/patterns/health-endpoint-monitoring&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Health Endpoint Monitoring&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td colspan=&quot;4&quot; style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Traceability&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;72&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;39. &lt;/span&gt;&lt;a href=&quot;https://patterns.arcitura.com/microservice-patterns/design_patterns/distributed_diagnostics&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Distributed Diagnostics&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;35. &lt;/span&gt;&lt;a href=&quot;https://microservices.io/patterns/observability/distributed-tracing.html&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Distributed tracing&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;QBit LMDC&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Zipkin&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;73&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;40. &lt;/span&gt;&lt;a href=&quot;https://patterns.arcitura.com/microservice-patterns/design_patterns/log_aggregator&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Log Aggregator&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;36. &lt;/span&gt;&lt;a href=&quot;https://microservices.io/patterns/observability/application-logging.html&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Log aggregation&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Loggy Container&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;AWS Cloud Watch&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;74&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;37. &lt;/span&gt;&lt;a href=&quot;https://microservices.io/patterns/observability/application-metrics.html&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Application metrics&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Prometheus&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;AWS Cloud Watch&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;75&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;38. &lt;/span&gt;&lt;a href=&quot;https://microservices.io/patterns/observability/audit-logging.html&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Audit logging&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;76&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;39. &lt;/span&gt;&lt;a href=&quot;https://microservices.io/patterns/observability/exception-tracking.html&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Exception tracking&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;77&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;40. &lt;/span&gt;&lt;a href=&quot;https://microservices.io/patterns/observability/health-check-api.html&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Health check API&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;78&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;41. &lt;/span&gt;&lt;a href=&quot;https://microservices.io/patterns/observability/log-deployments-and-changes.html&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Log deployments and changes&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;AWS Cloud Trail&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td colspan=&quot;4&quot; style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Testing&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;79&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;42. &lt;/span&gt;&lt;a href=&quot;https://microservices.io/patterns/testing/service-component-test.html&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Service Component Test&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Spring Cloud Contract&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;80&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;43. &lt;/span&gt;&lt;a href=&quot;https://microservices.io/patterns/testing/service-integration-contract-test.html&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Consumer-driven contract test&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Spring Cloud Contract&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;81&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;44. &lt;/span&gt;&lt;a href=&quot;https://microservices.io/patterns/testing/consumer-side-contract-test.html&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Consumer-side contract test&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td colspan=&quot;4&quot; style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Security&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;82&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;35.&lt;/span&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/azure/architecture/patterns/federated-identity&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Federated Identity&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td rowspan=&quot;2&quot; style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;41. &lt;/span&gt;&lt;a href=&quot;https://patterns.arcitura.com/soa-patterns/design_patterns/brokered_authentication&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Brokered Authentication&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt; (SOA)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td rowspan=&quot;2&quot; style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;45. &lt;/span&gt;&lt;a href=&quot;https://microservices.io/patterns/security/access-token.html&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Access Token&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;83&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;36.&lt;/span&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/azure/architecture/patterns/valet-key&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Valet Key&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #efefef; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;84&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;37.&lt;/span&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/azure/architecture/patterns/gatekeeper&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Gatekeeper&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td colspan=&quot;4&quot; style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;UI Patterns&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;85&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;46. &lt;/span&gt;&lt;a href=&quot;https://microservices.io/patterns/ui/server-side-page-fragment-composition.html&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Server-side page fragment Composition&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 21pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;86&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NA&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;47. &lt;/span&gt;&lt;a href=&quot;https://microservices.io/patterns/ui/client-side-ui-composition.html&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Client-side UI Composition&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p dir=&quot;ltr&quot; style=&quot;background-color: white; line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://raikblog.blogspot.com/feeds/4245254388122234219/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://raikblog.blogspot.com/2021/01/microservices-design-patterns-mapping.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/4245254388122234219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/4245254388122234219'/><link rel='alternate' type='text/html' href='http://raikblog.blogspot.com/2021/01/microservices-design-patterns-mapping.html' title='Microservices Design Patterns (Arcitura vs Microservices.io vs Microsoft)'/><author><name>Haitham Raik</name><uri>http://www.blogger.com/profile/04008662680572575275</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7677652326497115767.post-8929948029625040091</id><published>2019-07-26T03:41:00.000+03:00</published><updated>2019-09-28T20:28:01.977+03:00</updated><title type='text'>Enterprise Integration Patterns (Table)</title><content type='html'>&lt;table border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoTableGrid&quot; style=&quot;border-collapse: collapse; border: none; margin-left: -0.25pt; width: 0px;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td rowspan=&quot;57&quot; style=&quot;border: 1pt solid windowtext; padding: 0in 5.4pt; width: 106.75pt;&quot; valign=&quot;top&quot; width=&quot;142&quot;&gt;&lt;h1 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 16pt; font-weight: normal; line-height: normal; margin: 0in 0in 0.0001pt;&quot;&gt;
Enterprise Integration Patterns&lt;o:p&gt;&lt;/o:p&gt;&lt;/h1&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-image: initial; border-left: none; border-right: 1pt solid windowtext; border-top: 1pt solid windowtext; padding: 0in 5.4pt; width: 102.15pt;&quot; valign=&quot;top&quot; width=&quot;136&quot;&gt;&lt;h1 align=&quot;center&quot; style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 16pt; font-weight: normal; line-height: normal; margin: 0in 0in 0.0001pt; text-align: center;&quot;&gt;
Integration Style&lt;o:p&gt;&lt;/o:p&gt;&lt;/h1&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-image: initial; border-left: none; border-right: 1pt solid windowtext; border-top: 1pt solid windowtext; padding: 0in 5.4pt; width: 86.2pt;&quot; valign=&quot;top&quot; width=&quot;115&quot;&gt;&lt;h1 align=&quot;center&quot; style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 16pt; font-weight: normal; line-height: normal; margin: 0in 0in 0.0001pt; text-align: center;&quot;&gt;
Root Pattern&lt;o:p&gt;&lt;/o:p&gt;&lt;/h1&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-image: initial; border-left: none; border-right: 1pt solid windowtext; border-top: 1pt solid windowtext; padding: 0in 5.4pt; width: 82.9pt;&quot; valign=&quot;top&quot; width=&quot;111&quot;&gt;&lt;h1 align=&quot;center&quot; style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 16pt; font-weight: normal; line-height: normal; margin: 0in 0in 0.0001pt; text-align: center;&quot;&gt;
Base Pattern&lt;o:p&gt;&lt;/o:p&gt;&lt;/h1&gt;
&lt;/td&gt;&lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid windowtext; border-image: initial; border-left: none; border-right: 1pt solid windowtext; border-top: 1pt solid windowtext; padding: 0in 5.4pt; width: 1.5in;&quot; valign=&quot;top&quot; width=&quot;144&quot;&gt;&lt;h1 align=&quot;center&quot; style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 16pt; font-weight: normal; line-height: normal; margin: 0in 0in 0.0001pt; text-align: center;&quot;&gt;
IIB Implementation Reference&lt;o:p&gt;&lt;/o:p&gt;&lt;/h1&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 102.15pt;&quot; valign=&quot;top&quot; width=&quot;136&quot;&gt;&lt;h2 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 13pt; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
File Transfer&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;
&lt;/td&gt;&lt;td colspan=&quot;4&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 277.1pt;&quot; valign=&quot;top&quot; width=&quot;369&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 102.15pt;&quot; valign=&quot;top&quot; width=&quot;136&quot;&gt;&lt;h2 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 13pt; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Shared Database&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;
&lt;/td&gt;&lt;td colspan=&quot;4&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 277.1pt;&quot; valign=&quot;top&quot; width=&quot;369&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 102.15pt;&quot; valign=&quot;top&quot; width=&quot;136&quot;&gt;&lt;h2 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 13pt; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Remote Procedure Call (RPC)&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;
&lt;/td&gt;&lt;td colspan=&quot;4&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 277.1pt;&quot; valign=&quot;top&quot; width=&quot;369&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td rowspan=&quot;53&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 102.15pt;&quot; valign=&quot;top&quot; width=&quot;136&quot;&gt;&lt;h2 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 13pt; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Messaging&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;font-family: Calibri, sans-serif; font-size: 11pt; line-height: normal; margin: 0in 0in 0.0001pt;&quot;&gt;
For Loosely Coupled Integration, Messaging System (Middleware) is needed and it must support following concepts&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td bgcolor=&quot;f0f0f0&quot; rowspan=&quot;10&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; valign=&quot;top&quot; width=&quot;115&quot;&gt;&lt;h3 style=&quot;break-after: avoid; color: #1f4d78; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 12pt; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Message&lt;o:p&gt;&lt;/o:p&gt;&lt;/h3&gt;
&lt;/td&gt;&lt;td bgcolor=&quot;f0f0f0&quot; colspan=&quot;3&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 190.9pt;&quot; valign=&quot;top&quot; width=&quot;255&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;font-family: Calibri, sans-serif; font-size: 11pt; line-height: normal; margin: 0in 0in 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; valign=&quot;top&quot; width=&quot;115&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Command Message&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;img alt=&quot;Command Message&quot; src=&quot;https://www.enterpriseintegrationpatterns.com/img/CommandMessageIcon.gif&quot; /&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 104.7pt;&quot; valign=&quot;top&quot; width=&quot;140&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;a href=&quot;https://github.com/haitham-raik/IIB-EIP/tree/master/CommandMessagePattern&quot;&gt;Command Message Pattern in IIB&lt;/a&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; valign=&quot;top&quot; width=&quot;115&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Document Message&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;img alt=&quot;Document Message&quot; src=&quot;https://www.enterpriseintegrationpatterns.com/img/DocumentMessageIcon.gif&quot; /&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 104.7pt;&quot; valign=&quot;top&quot; width=&quot;140&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; valign=&quot;top&quot; width=&quot;115&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Event Message&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;img alt=&quot;Event Message&quot; src=&quot;https://www.enterpriseintegrationpatterns.com/img/EventMessageIcon.gif&quot; /&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 104.7pt;&quot; valign=&quot;top&quot; width=&quot;140&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; valign=&quot;top&quot; width=&quot;115&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Request-Reply&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;img alt=&quot;Request-Reply&quot; src=&quot;https://www.enterpriseintegrationpatterns.com/img/RequestReplyIcon.gif&quot; /&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 104.7pt;&quot; valign=&quot;top&quot; width=&quot;140&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; valign=&quot;top&quot; width=&quot;115&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Return Address&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;img alt=&quot;Return Address&quot; src=&quot;https://www.enterpriseintegrationpatterns.com/img/ReturnAddressIcon.gif&quot; /&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 104.7pt;&quot; valign=&quot;top&quot; width=&quot;140&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; valign=&quot;top&quot; width=&quot;115&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Correlation Identifier&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;img alt=&quot;Correlation Identifier&quot; src=&quot;https://www.enterpriseintegrationpatterns.com/img/CorrelationIdentifierIcon.gif&quot; /&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 104.7pt;&quot; valign=&quot;top&quot; width=&quot;140&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; valign=&quot;top&quot; width=&quot;115&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Message Sequence&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;img alt=&quot;Message Sequence&quot; src=&quot;https://www.enterpriseintegrationpatterns.com/img/MessageSequenceIcon.gif&quot; /&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 104.7pt;&quot; valign=&quot;top&quot; width=&quot;140&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; valign=&quot;top&quot; width=&quot;115&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Message Expiration&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;img alt=&quot;Message Expiration&quot; src=&quot;https://www.enterpriseintegrationpatterns.com/img/MessageExpirationIcon.gif&quot; /&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 104.7pt;&quot; valign=&quot;top&quot; width=&quot;140&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; valign=&quot;top&quot; width=&quot;115&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Format Indicator&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 104.7pt;&quot; valign=&quot;top&quot; width=&quot;140&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td bgcolor=&quot;f0f0f0&quot; rowspan=&quot;10&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; valign=&quot;top&quot; width=&quot;115&quot;&gt;&lt;h3 style=&quot;break-after: avoid; color: #1f4d78; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 12pt; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Message Channel (&lt;span class=&quot;SpellE&quot;&gt;Async&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/h3&gt;
&lt;/td&gt;&lt;td bgcolor=&quot;f0f0f0&quot; colspan=&quot;3&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 190.9pt;&quot; valign=&quot;top&quot; width=&quot;255&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;font-family: Calibri, sans-serif; font-size: 11pt; line-height: normal; margin: 0in 0in 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; valign=&quot;top&quot; width=&quot;115&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Point-to-Point&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;img alt=&quot;Point-to-Point Channel&quot; src=&quot;https://www.enterpriseintegrationpatterns.com/img/PointToPointIcon.gif&quot; /&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 104.7pt;&quot; valign=&quot;top&quot; width=&quot;140&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; width=&quot;115&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Publish-Subscribe&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;img alt=&quot;Publish-Subscribe Channel&quot; src=&quot;https://www.enterpriseintegrationpatterns.com/img/PublishSubscribeIcon.gif&quot; /&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 104.7pt;&quot; valign=&quot;top&quot; width=&quot;140&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; width=&quot;115&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Datatype Channel&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;img alt=&quot;Datatype Channel&quot; src=&quot;https://www.enterpriseintegrationpatterns.com/img/DatatypeChannelIcon.gif&quot; /&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 104.7pt;&quot; valign=&quot;top&quot; width=&quot;140&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; width=&quot;115&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Invalid Message Channel&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;img alt=&quot;Invalid Message Channel&quot; src=&quot;https://www.enterpriseintegrationpatterns.com/img/InvalidMessageChannelIcon.gif&quot; /&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 104.7pt;&quot; valign=&quot;top&quot; width=&quot;140&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; width=&quot;115&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Dead Letter&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;img alt=&quot;Dead Letter Channel&quot; src=&quot;https://www.enterpriseintegrationpatterns.com/img/DeadLetterChannelIcon.gif&quot; /&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 104.7pt;&quot; valign=&quot;top&quot; width=&quot;140&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; width=&quot;115&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Guaranteed Delivery&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;img alt=&quot;Guaranteed Delivery&quot; src=&quot;https://www.enterpriseintegrationpatterns.com/img/GuaranteedMessagingIcon.gif&quot; /&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 104.7pt;&quot; valign=&quot;top&quot; width=&quot;140&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; width=&quot;115&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Channel Adapter&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;img alt=&quot;Channel Adapter&quot; src=&quot;https://www.enterpriseintegrationpatterns.com/img/ChannelAdapterIcon.gif&quot; /&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 104.7pt;&quot; valign=&quot;top&quot; width=&quot;140&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; width=&quot;115&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Message Bridge&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;img alt=&quot;Messaging Bridge&quot; src=&quot;https://www.enterpriseintegrationpatterns.com/img/MessagingBridgeIcon.gif&quot; /&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 104.7pt;&quot; valign=&quot;top&quot; width=&quot;140&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; width=&quot;115&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Message Bus&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;img alt=&quot;Message Bus&quot; src=&quot;https://www.enterpriseintegrationpatterns.com/img/MessageBusIcon.gif&quot; /&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 104.7pt;&quot; valign=&quot;top&quot; width=&quot;140&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td bgcolor=&quot;f0f0f0&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; valign=&quot;top&quot; width=&quot;115&quot;&gt;&lt;h3 style=&quot;break-after: avoid; color: #1f4d78; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 12pt; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Pipes and Filters&lt;o:p&gt;&lt;/o:p&gt;&lt;/h3&gt;
&lt;/td&gt;&lt;td bgcolor=&quot;f0f0f0&quot; colspan=&quot;3&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 190.9pt;&quot; valign=&quot;top&quot; width=&quot;255&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;font-family: Calibri, sans-serif; font-size: 11pt; line-height: normal; margin: 0in 0in 0.0001pt;&quot;&gt;
&lt;img alt=&quot;Pipes and Filters&quot; src=&quot;https://www.enterpriseintegrationpatterns.com/img/PipesAndFiltersIcon.gif&quot; /&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td bgcolor=&quot;f0f0f0&quot; rowspan=&quot;13&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; valign=&quot;top&quot; width=&quot;115&quot;&gt;&lt;h3 style=&quot;break-after: avoid; color: #1f4d78; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 12pt; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Message Router&lt;o:p&gt;&lt;/o:p&gt;&lt;/h3&gt;
&lt;/td&gt;&lt;td bgcolor=&quot;f0f0f0&quot; colspan=&quot;3&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 190.9pt;&quot; width=&quot;255&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;font-family: Calibri, sans-serif; font-size: 11pt; line-height: normal; margin: 0in 0in 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; width=&quot;115&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Content-Based Router&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;img alt=&quot;Content-Based Router&quot; src=&quot;https://www.enterpriseintegrationpatterns.com/img/ContentBasedRouterIcon.gif&quot; /&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 104.7pt;&quot; valign=&quot;top&quot; width=&quot;140&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; width=&quot;115&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Message Filter&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 104.7pt;&quot; valign=&quot;top&quot; width=&quot;140&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; width=&quot;115&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Dynamic-Router&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 104.7pt;&quot; valign=&quot;top&quot; width=&quot;140&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; width=&quot;115&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Recipient List&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 104.7pt;&quot; valign=&quot;top&quot; width=&quot;140&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; width=&quot;115&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Splitter&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 104.7pt;&quot; valign=&quot;top&quot; width=&quot;140&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; width=&quot;115&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Aggregator&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 104.7pt;&quot; valign=&quot;top&quot; width=&quot;140&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; width=&quot;115&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Re-sequencer&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 104.7pt;&quot; valign=&quot;top&quot; width=&quot;140&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; width=&quot;115&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Composed Message Processor&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 104.7pt;&quot; valign=&quot;top&quot; width=&quot;140&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; width=&quot;115&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Scatter-Gather&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 104.7pt;&quot; valign=&quot;top&quot; width=&quot;140&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; width=&quot;115&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Routing Slip&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 104.7pt;&quot; valign=&quot;top&quot; width=&quot;140&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; width=&quot;115&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Process Manager&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 104.7pt;&quot; valign=&quot;top&quot; width=&quot;140&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; width=&quot;115&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Message Broker&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 104.7pt;&quot; valign=&quot;top&quot; width=&quot;140&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td bgcolor=&quot;f0f0f0&quot; rowspan=&quot;7&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; valign=&quot;top&quot; width=&quot;115&quot;&gt;&lt;h3 style=&quot;break-after: avoid; color: #1f4d78; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 12pt; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Message Translator&lt;o:p&gt;&lt;/o:p&gt;&lt;/h3&gt;
&lt;/td&gt;&lt;td bgcolor=&quot;f0f0f0&quot; colspan=&quot;3&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 190.9pt;&quot; width=&quot;255&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;font-family: Calibri, sans-serif; font-size: 11pt; line-height: normal; margin: 0in 0in 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; width=&quot;115&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Envelope Wrapper&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 104.7pt;&quot; valign=&quot;top&quot; width=&quot;140&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; width=&quot;115&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Content Enricher&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 104.7pt;&quot; valign=&quot;top&quot; width=&quot;140&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; width=&quot;115&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Content Filter&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 104.7pt;&quot; valign=&quot;top&quot; width=&quot;140&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; width=&quot;115&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Claim Check&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 104.7pt;&quot; valign=&quot;top&quot; width=&quot;140&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; width=&quot;115&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Normalizer&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 104.7pt;&quot; valign=&quot;top&quot; width=&quot;140&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; width=&quot;115&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Canonical Data Model&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 104.7pt;&quot; valign=&quot;top&quot; width=&quot;140&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td bgcolor=&quot;f0f0f0&quot; rowspan=&quot;12&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; valign=&quot;top&quot; width=&quot;115&quot;&gt;&lt;h3 style=&quot;break-after: avoid; color: #1f4d78; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 12pt; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Message Endpoint&lt;o:p&gt;&lt;/o:p&gt;&lt;/h3&gt;
&lt;/td&gt;&lt;td bgcolor=&quot;f0f0f0&quot; colspan=&quot;3&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 190.9pt;&quot; valign=&quot;top&quot; width=&quot;255&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;font-family: Calibri, sans-serif; font-size: 11pt; line-height: normal; margin: 0in 0in 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; width=&quot;115&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Messaging Gateway&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 104.7pt;&quot; valign=&quot;top&quot; width=&quot;140&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; width=&quot;115&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Messaging Mapper&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 104.7pt;&quot; valign=&quot;top&quot; width=&quot;140&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; width=&quot;115&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Transactional Client&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 104.7pt;&quot; valign=&quot;top&quot; width=&quot;140&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; width=&quot;115&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Polling Consumer&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 104.7pt;&quot; valign=&quot;top&quot; width=&quot;140&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; width=&quot;115&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Event-Driven Consumer&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 104.7pt;&quot; valign=&quot;top&quot; width=&quot;140&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; width=&quot;115&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Competing Consumers&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 104.7pt;&quot; valign=&quot;top&quot; width=&quot;140&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; width=&quot;115&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Message Dispatcher&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 104.7pt;&quot; valign=&quot;top&quot; width=&quot;140&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; width=&quot;115&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Selective Consumer&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 104.7pt;&quot; valign=&quot;top&quot; width=&quot;140&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; width=&quot;115&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Durable Subscriber&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 104.7pt;&quot; valign=&quot;top&quot; width=&quot;140&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; width=&quot;115&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Idempotent Receiver&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 104.7pt;&quot; valign=&quot;top&quot; width=&quot;140&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 86.2pt;&quot; width=&quot;115&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
Service Activator&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; padding: 0in 5.4pt; width: 104.7pt;&quot; valign=&quot;top&quot; width=&quot;140&quot;&gt;&lt;h4 style=&quot;break-after: avoid; color: #2e74b5; font-family: &amp;quot;Calibri Light&amp;quot;, sans-serif; font-size: 11pt; font-style: italic; font-weight: normal; line-height: normal; margin: 2pt 0in 0.0001pt;&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/h4&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr height=&quot;0&quot;&gt;&lt;td style=&quot;border: none;&quot; width=&quot;285&quot;&gt;&lt;/td&gt;&lt;td style=&quot;border: none;&quot; width=&quot;272&quot;&gt;&lt;/td&gt;&lt;td style=&quot;border: none;&quot; width=&quot;230&quot;&gt;&lt;/td&gt;&lt;td style=&quot;border: none;&quot; width=&quot;221&quot;&gt;&lt;/td&gt;&lt;td style=&quot;border: none;&quot; width=&quot;9&quot;&gt;&lt;/td&gt;&lt;td style=&quot;border: none;&quot; width=&quot;279&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;font-family: Calibri, sans-serif; font-size: 11pt; line-height: 15.5467px; margin: 0in 0in 8pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://raikblog.blogspot.com/feeds/8929948029625040091/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://raikblog.blogspot.com/2019/07/enterprise-integration-patterns-table.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/8929948029625040091'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/8929948029625040091'/><link rel='alternate' type='text/html' href='http://raikblog.blogspot.com/2019/07/enterprise-integration-patterns-table.html' title='Enterprise Integration Patterns (Table)'/><author><name>Haitham Raik</name><uri>http://www.blogger.com/profile/04008662680572575275</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7677652326497115767.post-2850299977553750322</id><published>2019-07-24T15:31:00.000+03:00</published><updated>2019-07-24T15:31:04.456+03:00</updated><title type='text'>Desktop MVC vs Web MVC</title><content type='html'>&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;MVC&amp;nbsp;&lt;span style=&quot;background-color: white; color: #333333; font-size: 16px; letter-spacing: -0.04448px;&quot;&gt;is&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #333333; font-size: 16px; letter-spacing: -0.04448px;&quot;&gt;a pattern in software design commonly used to implement user interfaces, data, and controlling logic. It emphasizes a separation between the software’s business logic and display. The below diagram depicts how MVC is implemented:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEintqhgxta00gMvhW0dNyC3TkhqXn9p1S82X22eNaOhtzSz1nUKViHLc4-j9RS8KxkXQt8gn9EoxaWCAPoWJuUJmW7X5tM9uKdGY6rYgkQrnBAhyphenhyphenhYGeQjm1eLpYg3QrMHE41xH4jXWtJEF/s1600/model-view-controller-light-blue.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1200&quot; data-original-width=&quot;1600&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEintqhgxta00gMvhW0dNyC3TkhqXn9p1S82X22eNaOhtzSz1nUKViHLc4-j9RS8KxkXQt8gn9EoxaWCAPoWJuUJmW7X5tM9uKdGY6rYgkQrnBAhyphenhyphenhYGeQjm1eLpYg3QrMHE41xH4jXWtJEF/s640/model-view-controller-light-blue.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;background-color: white; color: #333333; font-size: 16px; letter-spacing: -0.04448px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;letter-spacing: -0.04448px;&quot;&gt;From the above diagram you can see how the model updates the views directly (using Observer design pattern) and that&#39;s&amp;nbsp;because the original&amp;nbsp;MVC was designed mainly for desktop applications where the model and view are just objects on the same machine, but the story is different in the web applications.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;background-color: white; color: #333333; font-size: 16px; letter-spacing: -0.04448px;&quot;&gt;In Web applications, the model resides on the server and the view is just a set of html pages rendered on users browser and there is no direct contact between the model and users&#39; browser. For that reason, the MVC has been evolved to adapt the web applications by giving the controller more responsibility. below diagram depicts the Web MVC:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVoPcDTXYgcxGUKap0sqyufw3uifddh1WKl6udWfFv5ooEFRAm3oiUucX33bz4oO11e4mTJ77H5F8RswxLMm1FhPjY7DtrEJT1WgfRXIWS_2Z0986-JD72aufrXqLhHnOxgQe7OQrnaJnQ/s1600/MVC-Architecture.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;437&quot; data-original-width=&quot;760&quot; height=&quot;230&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVoPcDTXYgcxGUKap0sqyufw3uifddh1WKl6udWfFv5ooEFRAm3oiUucX33bz4oO11e4mTJ77H5F8RswxLMm1FhPjY7DtrEJT1WgfRXIWS_2Z0986-JD72aufrXqLhHnOxgQe7OQrnaJnQ/s400/MVC-Architecture.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;background-color: white; color: #333333; font-size: 16px; letter-spacing: -0.04448px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;background-color: white; color: #333333; font-size: 16px; letter-spacing: -0.04448px;&quot;&gt;In Web MVC, the controller accepts the user input, manipulates the model and sends/renders the updates to the views.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #333333; font-family: Arial, x-locale-body, sans-serif; font-size: 16px; letter-spacing: -0.04448px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://raikblog.blogspot.com/feeds/2850299977553750322/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://raikblog.blogspot.com/2019/07/desktop-mvc-vs-web-mvc.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/2850299977553750322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/2850299977553750322'/><link rel='alternate' type='text/html' href='http://raikblog.blogspot.com/2019/07/desktop-mvc-vs-web-mvc.html' title='Desktop MVC vs Web MVC'/><author><name>Haitham Raik</name><uri>http://www.blogger.com/profile/04008662680572575275</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEintqhgxta00gMvhW0dNyC3TkhqXn9p1S82X22eNaOhtzSz1nUKViHLc4-j9RS8KxkXQt8gn9EoxaWCAPoWJuUJmW7X5tM9uKdGY6rYgkQrnBAhyphenhyphenhYGeQjm1eLpYg3QrMHE41xH4jXWtJEF/s72-c/model-view-controller-light-blue.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7677652326497115767.post-5402900617097978761</id><published>2018-07-20T12:46:00.017+03:00</published><updated>2021-07-07T19:52:30.240+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Application Architecture"/><category scheme="http://www.blogger.com/atom/ns#" term="Architecture"/><category scheme="http://www.blogger.com/atom/ns#" term="Enterprise Application Architecture"/><category scheme="http://www.blogger.com/atom/ns#" term="Information Architecture"/><category scheme="http://www.blogger.com/atom/ns#" term="Integration Architecture"/><category scheme="http://www.blogger.com/atom/ns#" term="Microservices Architecture"/><category scheme="http://www.blogger.com/atom/ns#" term="SOA"/><category scheme="http://www.blogger.com/atom/ns#" term="Software Architecture"/><category scheme="http://www.blogger.com/atom/ns#" term="Technology Architecture"/><title type='text'>Different Types of Technology Architectures and their relationships with Design Patterns</title><content type='html'>&lt;span id=&quot;docs-internal-guid-a9e46b0c-7fff-bf4a-a304-45f27f115370&quot;&gt;&lt;h1 dir=&quot;ltr&quot; style=&quot;line-height: 1.295; margin-bottom: 0pt; margin-top: 12pt;&quot;&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;The following diagram shows the different types of
Technology Architectures and the relationship between them:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-size: medium; font-weight: normal;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhj4COIvYDlZw6uMrUbITSUqymHnljNbb6xt0uhzxYcJNPJwJGsWY_zA3eyerShWc9fV5DQNLaLKB4uE-sYmXKI1Usr0gxd4BCFX4DRcXD2ydQs80OVOYGIICdSqY6oimkwAWslPmIxpSLv/&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;1393&quot; data-original-width=&quot;1714&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhj4COIvYDlZw6uMrUbITSUqymHnljNbb6xt0uhzxYcJNPJwJGsWY_zA3eyerShWc9fV5DQNLaLKB4uE-sYmXKI1Usr0gxd4BCFX4DRcXD2ydQs80OVOYGIICdSqY6oimkwAWslPmIxpSLv/s16000/image.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-size: small; font-weight: normal;&quot;&gt;In the following, you will find the most common definition
for each Software Architecture type starting from the parent (i.e., Technology
Architecture):&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;b&gt;&lt;span style=&quot;line-height: 107%;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Technology
Architecture&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;line-height: 107%;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;The fundamental and foundational aspects of physical design of
some piece of technology. &lt;/span&gt;&lt;u&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/blog/post/edit/7677652326497115767/5402900617097978761&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;SOA
Design Patterns by Erl&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;line-height: 107%;&quot;&gt;Software
Architecture&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-weight: normal; line-height: 107%;&quot;&gt;Software Architecture&lt;/span&gt;&lt;/i&gt;&lt;span style=&quot;line-height: 107%;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&amp;nbsp;describes
the fundamental structure of a software.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;i style=&quot;font-size: medium; font-weight: normal;&quot;&gt;Software Architecture&lt;/i&gt;&lt;span style=&quot;font-size: medium; font-weight: normal;&quot;&gt;&amp;nbsp;can be either&amp;nbsp;&lt;/span&gt;&lt;i style=&quot;font-size: medium; font-weight: normal;&quot;&gt;Application Architecture&lt;/i&gt;&lt;span style=&quot;font-size: medium; font-weight: normal;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;i style=&quot;font-size: medium; font-weight: normal;&quot;&gt;Integration Architecture&lt;/i&gt;&lt;span style=&quot;font-size: medium; font-weight: normal;&quot;&gt;, or&amp;nbsp;&lt;/span&gt;&lt;i style=&quot;font-size: medium; font-weight: normal;&quot;&gt;Data Architecture&lt;/i&gt;&lt;span style=&quot;font-size: medium; font-weight: normal;&quot;&gt;&amp;nbsp;and it can mean
all of them.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;b&gt;&lt;span style=&quot;line-height: 107%;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Application
Architecture&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-size: small; font-weight: normal;&quot;&gt;&lt;i&gt;&lt;span style=&quot;line-height: 107%;&quot;&gt;Application
Architecture&lt;/span&gt;&lt;/i&gt;&lt;span style=&quot;line-height: 107%;&quot;&gt;&amp;nbsp;is a description of the subsystems
and&amp;nbsp;components of a software and the relationships between&amp;nbsp;them.
Subsystems and components are typically detailed in different&amp;nbsp;views to
show the relevant functional and non-functional properties&amp;nbsp;of a software. A&amp;nbsp;&lt;i&gt;component&lt;/i&gt;&amp;nbsp;is an encapsulated part
of a software system. A component has an interface. Components serve as the
building blocks for the structure of a system. At a programming-language level,
components may be represented as modules, classes, objects or a set of related
functions.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-weight: normal; line-height: 107%;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Note: Sometimes people say Software Architecture and they mean
Application Architecture.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;u&gt;&lt;span style=&quot;color: blue; font-weight: normal; line-height: 107%;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/blog/post/edit/7677652326497115767/5402900617097978761&quot;&gt;Pattern-Oriented
Software Architecture, Volume 1&lt;/a&gt;, &lt;a href=&quot;https://www.blogger.com/blog/post/edit/7677652326497115767/5402900617097978761&quot;&gt;SOA
Design Patterns by Erl&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;line-height: 107%;&quot;&gt;Integration
Architecture&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;line-height: 107%;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-weight: normal; line-height: 107%;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;The description of two or more connected applications including
whatever technologies, resources, or extensions were added to enable their
integration.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-weight: normal; line-height: 107%;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Note: Integration Architecture is different from Distributed
Application Architecture. Distributed Architecture parts are communicating with
each other in a tightly coupled manner (one tier cannot work without the other);
the communication between the parts must be synchronous. In contrast,
Integrated Applications are independent applications that can each run by
themselves but that coordinate with each other in a loosely coupled way.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-size: small; font-weight: normal;&quot;&gt;&lt;u&gt;&lt;span style=&quot;color: blue; line-height: 107%;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/blog/post/edit/7677652326497115767/5402900617097978761&quot;&gt;SOA
Design Patterns by Erl&lt;/a&gt;&lt;/span&gt;&lt;/u&gt;&lt;span style=&quot;line-height: 107%;&quot;&gt;, &lt;span class=&quot;MsoHyperlink&quot;&gt;&lt;a href=&quot;https://www.enterpriseintegrationpatterns.com/patterns/messaging/&quot;&gt;Enterprise
Integration Patterns by Hophe&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;b&gt;&lt;span style=&quot;line-height: 107%;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Data
Architecture&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-size: small; font-weight: normal;&quot;&gt;&lt;i&gt;&lt;span style=&quot;background: white; color: #222222; line-height: 107%;&quot;&gt;Data Architecture&lt;/span&gt;&lt;/i&gt;&lt;span style=&quot;background: white; color: #222222; line-height: 107%;&quot;&gt;&amp;nbsp;is composed of
models, policies, rules or standards that govern which data is collected, and
how it is stored, arranged, integrated, and put to use in data systems and in
organizations.&lt;/span&gt;&lt;span style=&quot;color: #222222; line-height: 107%;&quot;&gt; &lt;/span&gt;&lt;u&gt;&lt;span style=&quot;color: #663366; line-height: 107%;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/blog/post/edit/7677652326497115767/5402900617097978761&quot;&gt;&lt;span style=&quot;color: #663366;&quot;&gt;TOGAF® 9.1 - Phase C: Information Systems Architectures -
Data Architecture&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;b&gt;&lt;span style=&quot;line-height: 107%;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Enterprise
Application Architecture&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-size: small; font-weight: normal;&quot;&gt;&lt;i&gt;&lt;span style=&quot;line-height: 107%;&quot;&gt;Enterprise
Applications&lt;/span&gt;&lt;/i&gt;&lt;span style=&quot;line-height: 107%;&quot;&gt;&amp;nbsp;is a sub-type of&amp;nbsp;&lt;i&gt;Application Architecture&lt;/i&gt;&amp;nbsp;that
requires involvement of persistent data and it must support concurrent access
through many UI screens.&amp;nbsp;&amp;nbsp;&lt;i&gt;Enterprise
Applications&lt;/i&gt;&amp;nbsp;are also known as&amp;nbsp;&lt;i&gt;Information Systems&lt;/i&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-size: small; font-weight: normal;&quot;&gt;&lt;i&gt;&lt;span style=&quot;line-height: 107%;&quot;&gt;Enterprise
Application&lt;/span&gt;&lt;/i&gt;&lt;span style=&quot;line-height: 107%;&quot;&gt;&amp;nbsp;can be structured or distributed. A
distributed application is an application whose components are located on
different machines communicating with each other synchronously. For example,
Client/Server architecture. &lt;u&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/blog/post/edit/7677652326497115767/5402900617097978761&quot;&gt;Patterns
of Enterprise Application Architecture&lt;/a&gt;&lt;/span&gt;&lt;/u&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;b&gt;&lt;span style=&quot;line-height: 107%;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Solution
/ System Architecture&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-size: small; font-weight: normal;&quot;&gt;&lt;i&gt;&lt;span style=&quot;line-height: 107%;&quot;&gt;Solution
Architecture&lt;/span&gt;&lt;/i&gt;&lt;span style=&quot;line-height: 107%;&quot;&gt;&amp;nbsp;is a description of an entire system in
the context of a solution that is related to specific business problems.
Solution Architecture should describe Software and Hardware Architectures of
the entire solution. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;b&gt;&lt;span style=&quot;line-height: 107%;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Enterprise
Architecture&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-size: small; font-weight: normal;&quot;&gt;&lt;i&gt;&lt;span style=&quot;line-height: 107%;&quot;&gt;Enterprise
Architecture&lt;/span&gt;&lt;/i&gt;&lt;span style=&quot;line-height: 107%;&quot;&gt;&amp;nbsp;applies architecture principles and
practices to guide organizations through the business, information, process,
and technology changes necessary to execute their strategies. These practices
utilize the various aspects of an enterprise to identify, motivate, and achieve
these changes. &lt;u&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/blog/post/edit/7677652326497115767/5402900617097978761&quot;&gt;Federation
of EA Professional Organizations,&amp;nbsp; &quot;Common Perspectives on Enterprise Architecture&lt;/a&gt;&lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;







































&lt;span style=&quot;font-size: medium; font-weight: normal;&quot;&gt;In the following table, the main Software-related
Architectural patterns are listed along with their relationships with the
different Design Patterns:&lt;/span&gt;&lt;/p&gt;&lt;/h1&gt;&lt;h1 dir=&quot;ltr&quot; style=&quot;line-height: 1.295; margin-bottom: 0pt; margin-top: 12pt;&quot;&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;table border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoNormalTable&quot; style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid black .5pt; mso-border-insideh: .5pt solid black; mso-border-insidev: .5pt solid black; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-table-layout-alt: fixed; mso-yfti-tbllook: 1024; width: 0px;&quot;&gt;
 &lt;/table&gt;&lt;/h1&gt;&lt;h2 align=&quot;center&quot; style=&quot;text-align: center;&quot;&gt;&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoNormalTable&quot; style=&quot;border-collapse: collapse; mso-padding-alt: 0in 0in 0in 0in; mso-yfti-tbllook: 1184; width: 600px;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;
  &lt;td colspan=&quot;4&quot; style=&quot;border: 1pt solid black; padding: 0in 5.4pt; width: 0pt;&quot; valign=&quot;top&quot; width=&quot;800&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;p align=&quot;center&quot; class=&quot;MsoNormal&quot;&gt;&lt;b&gt;&lt;span style=&quot;line-height: 107%;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Software Patterns&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;b&gt;&lt;span face=&quot;Calibri, sans-serif&quot; style=&quot;line-height: 107%;&quot;&gt;Architectural Patterns vs Design Patterns&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;br /&gt;
  
  
  &lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid black; border-left: 1pt solid black; border-right: 3pt solid rgb(192, 0, 0); border-top: none; padding: 0in 5.4pt; width: 233.25pt;&quot; valign=&quot;top&quot; width=&quot;311&quot;&gt;
  &lt;p align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: center;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;b&gt;Architectural Patterns&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: center;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;(Common Architectural solutions for Common
  Architectural problems)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;Architectural
  pattern&lt;/i&gt;&amp;nbsp;expresses a fundamental structural organization schema for
  software systems. It provides a set of predefined subsystems, specifies their
  responsibilities, and includes rules and guidelines for organizing the
  relationships between them.&lt;u1:p&gt;&lt;/u1:p&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Below
  is a list of examples:&lt;u1:p&gt;&lt;/u1:p&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td colspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid black; border-left: none; border-right: 1pt solid black; border-top: none; padding: 0in 5.4pt; width: 233.75pt;&quot; valign=&quot;top&quot; width=&quot;312&quot;&gt;
  &lt;p align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: center;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;b&gt;Design Patterns&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: center;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;(Common Design solutions for Common Design problems)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Design
  Pattern provides a scheme for refining the subsystems or components of a
  software system, or the relationships between them. It describes a commonly
  recurring structure of communicating components that’s solves a general
  design problem within a particular context.&lt;u1:p&gt;&lt;/u1:p&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Below
  is a list of examples&lt;u1:p&gt;&lt;/u1:p&gt;:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td style=&quot;border-top: none; border: 1pt solid black; padding: 0in 5.4pt; width: 116.6pt;&quot; valign=&quot;top&quot; width=&quot;155&quot;&gt;
  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;b&gt;Structured
  Application Architecture&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style=&quot;border-bottom: 1pt solid black; border-left: none; border-right: 3pt solid rgb(192, 0, 0); border-top: none; padding: 0in 5.4pt; width: 116.65pt;&quot; valign=&quot;top&quot; width=&quot;156&quot;&gt;
  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;*&amp;nbsp;&lt;u&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;a href=&quot;https://raikblog.blogspot.com/2019/07/desktop-mvc-vs-web-mvc.html&quot;&gt;MVC&lt;/a&gt;&lt;/span&gt;&lt;/u&gt;&lt;u1:p&gt;&lt;/u1:p&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;*
  Multi-Layered&lt;u1:p&gt;&lt;/u1:p&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td rowspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid black; border-left: none; border-right: 1pt solid black; border-top: none; padding: 0in 5.4pt; width: 116.85pt;&quot; valign=&quot;top&quot; width=&quot;156&quot;&gt;
  &lt;p class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;b&gt;OO
  Design Patterns&lt;/b&gt;&amp;nbsp;(Can be applied within structured or distributed
  applications components/services built using OOP)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td rowspan=&quot;2&quot; style=&quot;border-bottom: 1pt solid black; border-left: none; border-right: 1pt solid black; border-top: none; padding: 0in 5.4pt; width: 116.9pt;&quot; valign=&quot;top&quot; width=&quot;156&quot;&gt;
  &lt;p class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Examples:&lt;u1:p&gt;&lt;/u1:p&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;*Decorator&lt;u1:p&gt;&lt;/u1:p&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;* Builder&lt;u1:p&gt;&lt;/u1:p&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;* Observer&lt;u1:p&gt;&lt;/u1:p&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;* Façade&lt;u1:p&gt;&lt;/u1:p&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;* Command&lt;u1:p&gt;&lt;/u1:p&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td style=&quot;border-top: none; border: 1pt solid black; padding: 0in 5.4pt; width: 116.6pt;&quot; valign=&quot;top&quot; width=&quot;155&quot;&gt;
  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;b&gt;Distributed
  Application Architecture&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style=&quot;border-bottom: 1pt solid black; border-left: none; border-right: 3pt solid rgb(192, 0, 0); border-top: none; padding: 0in 5.4pt; width: 116.65pt;&quot; valign=&quot;top&quot; width=&quot;156&quot;&gt;
  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;*
  N-Tier&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;*
  SOA&lt;u1:p&gt;&lt;/u1:p&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;*
  Microservices&lt;u1:p&gt;&lt;/u1:p&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td style=&quot;border-top: none; border: 1pt solid black; padding: 0in 5.4pt; width: 116.6pt;&quot; valign=&quot;top&quot; width=&quot;155&quot;&gt;
  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;b&gt;Integration
  Architecture&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style=&quot;border-bottom: 1pt solid black; border-left: none; border-right: 3pt solid rgb(192, 0, 0); border-top: none; padding: 0in 5.4pt; width: 116.65pt;&quot; valign=&quot;top&quot; width=&quot;156&quot;&gt;
  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;*
  Hub and Spoke&lt;u1:p&gt;&lt;/u1:p&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;*
  Pipes and Filters&lt;u1:p&gt;&lt;/u1:p&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style=&quot;border-bottom: 1pt solid black; border-left: none; border-right: 1pt solid black; border-top: none; padding: 0in 5.4pt; width: 116.85pt;&quot; valign=&quot;top&quot; width=&quot;156&quot;&gt;
  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;b&gt;Integration
  Design Patterns&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style=&quot;border-bottom: 1pt solid black; border-left: none; border-right: 1pt solid black; border-top: none; padding: 0in 5.4pt; width: 116.9pt;&quot; valign=&quot;top&quot; width=&quot;156&quot;&gt;
  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Find&amp;nbsp;&lt;u&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;a href=&quot;https://raikblog.blogspot.com/2019/07/enterprise-integration-patterns-table.html&quot;&gt;Enterprise
  Integration Patterns&lt;/a&gt;&lt;/span&gt;&lt;/u&gt;&amp;nbsp;blog for more details&lt;u1:p&gt;&lt;/u1:p&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style=&quot;height: 11pt; mso-yfti-irow: 5;&quot;&gt;
  &lt;td colspan=&quot;2&quot; rowspan=&quot;3&quot; style=&quot;border-bottom: 1pt solid black; border-left: 1pt solid black; border-right: 3pt solid rgb(192, 0, 0); border-top: none; height: 11pt; padding: 0in 5.4pt; width: 233.25pt;&quot; valign=&quot;top&quot; width=&quot;311&quot;&gt;
  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style=&quot;border-bottom: 1pt solid black; border-left: none; border-right: 1pt solid black; border-top: none; height: 11pt; mso-border-left-alt: solid #C00000 3.0pt; padding: 0in 5.4pt; width: 116.85pt;&quot; valign=&quot;top&quot; width=&quot;156&quot;&gt;
  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;b&gt;Design
  Patterns specific for particular Architectural Patterns&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style=&quot;border-bottom: 1pt solid black; border-left: none; border-right: 1pt solid black; border-top: none; height: 11pt; padding: 0in 5.4pt; width: 116.9pt;&quot; valign=&quot;top&quot; width=&quot;156&quot;&gt;
  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;For
  each sub-type of the architectural patterns, there are a set of related
  design patterns:&amp;nbsp;&lt;u&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;a href=&quot;https://martinfowler.com/books/eaa.html&quot;&gt;Enterprise Application
  Architecture&lt;/a&gt;&lt;/span&gt;&lt;/u&gt;&amp;nbsp;Design Patterns,&amp;nbsp;&lt;u&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;a href=&quot;https://patterns.arcitura.com/soa-patterns&quot;&gt;SOA
  Design Patterns&lt;/a&gt;&lt;/span&gt;&lt;/u&gt;,&amp;nbsp;&lt;u&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;a href=&quot;https://raikblog.blogspot.com/2021/01/microservices-design-patterns-mapping.html&quot;&gt;Microservices
  Design Patterns&lt;/a&gt;&lt;/span&gt;&lt;/u&gt;, etc.&lt;u1:p&gt;&lt;/u1:p&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style=&quot;height: 11pt; mso-yfti-irow: 6;&quot;&gt;
  &lt;td style=&quot;border-bottom: 1pt solid black; border-left: none; border-right: 1pt solid black; border-top: none; height: 11pt; mso-border-left-alt: solid #C00000 3.0pt; padding: 0in 5.4pt; width: 116.85pt;&quot; valign=&quot;top&quot; width=&quot;156&quot;&gt;
  &lt;p class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0in; mso-margin-top-alt: auto;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;b&gt;Concurrency Design Patterns&lt;/b&gt;&amp;nbsp;(Can be
  applied to any Architecture)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style=&quot;border-bottom: 1pt solid black; border-left: none; border-right: 1pt solid black; border-top: none; height: 11pt; padding: 0in 5.4pt; width: 116.9pt;&quot; valign=&quot;top&quot; width=&quot;156&quot;&gt;
  &lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in; mso-margin-top-alt: auto;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Examples:&lt;u1:p&gt;&lt;/u1:p&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;* Thread Pool&lt;u1:p&gt;&lt;/u1:p&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;* Scheduler&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;* Lock&lt;u1:p&gt;&lt;/u1:p&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style=&quot;height: 11pt; mso-yfti-irow: 7; mso-yfti-lastrow: yes;&quot;&gt;
  &lt;td style=&quot;border-bottom: 1pt solid black; border-left: none; border-right: 1pt solid black; border-top: none; height: 11pt; mso-border-left-alt: solid #C00000 3.0pt; padding: 0in 5.4pt; width: 116.85pt;&quot; valign=&quot;top&quot; width=&quot;156&quot;&gt;
  &lt;p class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0in; mso-margin-top-alt: auto;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;b&gt;Security Design Patterns&lt;/b&gt;&amp;nbsp;(Can be applied
  to any Architecture)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style=&quot;border-bottom: 1pt solid black; border-left: none; border-right: 1pt solid black; border-top: none; height: 11pt; padding: 0in 5.4pt; width: 116.9pt;&quot; valign=&quot;top&quot; width=&quot;156&quot;&gt;
  &lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Examples&lt;u1:p&gt;&lt;/u1:p&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;* Authenticator&lt;u1:p&gt;&lt;/u1:p&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;* Input Validation&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/h2&gt;&lt;/span&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://raikblog.blogspot.com/feeds/5402900617097978761/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://raikblog.blogspot.com/2018/07/software-patterns.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/5402900617097978761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/5402900617097978761'/><link rel='alternate' type='text/html' href='http://raikblog.blogspot.com/2018/07/software-patterns.html' title='Different Types of Technology Architectures and their relationships with Design Patterns'/><author><name>Haitham Raik</name><uri>http://www.blogger.com/profile/04008662680572575275</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhj4COIvYDlZw6uMrUbITSUqymHnljNbb6xt0uhzxYcJNPJwJGsWY_zA3eyerShWc9fV5DQNLaLKB4uE-sYmXKI1Usr0gxd4BCFX4DRcXD2ydQs80OVOYGIICdSqY6oimkwAWslPmIxpSLv/s72-c/image.png" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7677652326497115767.post-2230739774167211209</id><published>2013-05-27T13:48:00.002+03:00</published><updated>2013-05-28T00:53:01.215+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="IO"/><title type='text'>Apache Mina: Client side to Correlate Response with its Request</title><content type='html'>It is very common to build a TCP client by starting a thread
for each request and each request opens its own TCP channel.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
In this blog, we will explain how to build a client that
maintains one channel to handle all requests and all responses. This model is required for low-latency solutions.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Because one channel will be used for all messages then each
message should have two extra fields:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpFirst&quot; style=&quot;mso-list: l1 level1 lfo1; text-indent: -.25in;&quot;&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;font-size: 7pt; text-indent: -0.25in;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;span dir=&quot;LTR&quot; style=&quot;text-indent: -0.25in;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;Message size: this field is
important to determine when the message end and when the next message begins&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;font-size: 7pt; text-indent: -0.25in;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;span dir=&quot;LTR&quot; style=&quot;text-indent: -0.25in;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;Correlation Id: this Id is
important to match the response with its request&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;!--[if !supportLists]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;
&lt;div class=&quot;MsoListParagraphCxSpLast&quot; style=&quot;mso-list: l1 level1 lfo1; text-indent: -.25in;&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
This blog is dependent on Apache Mina Framework. Where the
following classes will be used:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpFirst&quot; style=&quot;mso-list: l0 level1 lfo2; text-indent: -.25in;&quot;&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-size: 7pt; text-indent: -0.25in;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span dir=&quot;LTR&quot; style=&quot;text-indent: -0.25in;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;Transaction: this class is
required to store the request and its matching response&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;TransactionDecoder: this is
required to convert the IO Buffer into Transaction object.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;TransactionEncoder: this is
required to convert the Transaction object into IO Buffer.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: 7pt; text-indent: -0.25in;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span dir=&quot;LTR&quot; style=&quot;text-indent: -0.25in;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;Multiplexer: This class is
required to send a request and wait for response&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: 7pt; text-indent: -0.25in;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span dir=&quot;LTR&quot; style=&quot;text-indent: -0.25in;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;ClientSessionHandler: this
is the handler required by Apache Mina.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l0 level1 lfo2; text-indent: -.25in;&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l0 level1 lfo2; text-indent: -.25in;&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l0 level1 lfo2; text-indent: -.25in;&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpLast&quot; style=&quot;mso-list: l0 level1 lfo2; text-indent: -.25in;&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
We will start with the Transaction class:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;table border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoTableGrid&quot; style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-yfti-tbllook: 1184;&quot;&gt;
 &lt;tbody&gt;
&lt;tr&gt;
  &lt;td style=&quot;border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 6.65in;&quot; valign=&quot;top&quot; width=&quot;638&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;package com;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import
  java.util.concurrent.ArrayBlockingQueue;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import
  java.util.concurrent.BlockingQueue;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import
  java.util.concurrent.TimeUnit;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import
  java.util.concurrent.atomic.AtomicInteger;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;public class
  Transaction {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // This object will be used as
  sequencer to generate new correlation ids&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static AtomicInteger
  messageIdSeq = new AtomicInteger();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private int correlationId;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private String request;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private String response;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private final BlockingQueue&lt;string&gt;
  availableResponse = new ArrayBlockingQueue&lt;string&gt;(1);&lt;o:p&gt;&lt;/o:p&gt;&lt;/string&gt;&lt;/string&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public Transaction() {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // For each new transaction, a
  new correlation Id will be created&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.correlationId =
  messageIdSeq.incrementAndGet();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String getResponse() {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return this.response;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String getRequest() {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return this.request;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public int getCorrelationId() {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return correlationId;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void setResponse(String
  response) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.response = response;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void setRequest(String request)
  {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.request = request;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void setCorrelationId(int
  correlationId) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.correlationId =
  correlationId;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void responseReceived(String
  response) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 0.0001pt 1in;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;// This method will be
  called to announce the response arrival&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.response = response;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; availableResponse.offer(response);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String waitResponse(long
  timeout, TimeUnit unit) throws InterruptedException {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 0.0001pt 1in;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;// this method will make
  the caller to wait until a response is received&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return
  availableResponse.poll(timeout, unit);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String toString() {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return
  &quot;--&amp;gt;&quot;+correlationId+&quot;-&quot;+request+&quot;-&quot;+response;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;}&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Here is the Encoder:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;table border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoTableGrid&quot; style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-yfti-tbllook: 1184;&quot;&gt;
 &lt;tbody&gt;
&lt;tr&gt;
  &lt;td style=&quot;border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 6.65in;&quot; valign=&quot;top&quot; width=&quot;638&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;package com;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import
  java.nio.charset.Charset;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import
  java.nio.charset.CharsetEncoder;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import
  org.apache.mina.core.buffer.IoBuffer;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import
  org.apache.mina.core.session.AttributeKey;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import
  org.apache.mina.core.session.IoSession;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import
  org.apache.mina.filter.codec.ProtocolEncoderAdapter;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import
  org.apache.mina.filter.codec.ProtocolEncoderOutput;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;public class
  TransactionEncoder extends ProtocolEncoderAdapter {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private final AttributeKey ENCODER =
  new AttributeKey(getClass(), &quot;encoder&quot;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private Charset charset;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private boolean isClient;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public TransactionEncoder(Charset
  charset, boolean isClient) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.charset = charset;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.isClient = isClient;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void encode(IoSession session,
  Object message, ProtocolEncoderOutput out) throws Exception {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CharsetEncoder encoder =
  (CharsetEncoder) session.getAttribute(ENCODER);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (encoder == null) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; encoder =
  charset.newEncoder();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; session.setAttribute(ENCODER,
  encoder);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Transaction trxn = (Transaction)
  message;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IoBuffer buffer =
  IoBuffer.allocate(8+trxn.getRequest().length()).setAutoExpand(true);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (isClient) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Add request size as
  header&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer.putInt(4+trxn.getRequest().length());&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Add correlation Id&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer.putInt(trxn.getCorrelationId());&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Add message&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer.putString(trxn.getRequest(),
  encoder);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Add response size as
  header&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer.putInt(4+trxn.getResponse().getBytes(charset).length);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Add correlation Id&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer.putInt(trxn.getCorrelationId());&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Add message&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer.putString(trxn.getResponse(),
  encoder);&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer.flip();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.write(buffer);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;}&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Here is the Decoder:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;table border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoTableGrid&quot; style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-yfti-tbllook: 1184;&quot;&gt;
 &lt;tbody&gt;
&lt;tr&gt;
  &lt;td style=&quot;border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 6.65in;&quot; valign=&quot;top&quot; width=&quot;638&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;package com;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import
  java.nio.ByteBuffer;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import
  java.nio.CharBuffer;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import
  java.nio.charset.Charset;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import
  java.nio.charset.CharsetDecoder;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import
  org.apache.mina.core.buffer.IoBuffer;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import
  org.apache.mina.core.session.AttributeKey;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import
  org.apache.mina.core.session.IoSession;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import
  org.apache.mina.filter.codec.CumulativeProtocolDecoder;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import org.apache.mina.filter.codec.ProtocolDecoderOutput;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;public class
  TransactionDecoder extends CumulativeProtocolDecoder {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private final AttributeKey DECODER =
  new AttributeKey(getClass(), &quot;decoder&quot;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private Charset charset;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private boolean isClient;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public TransactionDecoder(Charset
  charset, boolean isClient) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.charset = charset;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.isClient = isClient;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; protected boolean doDecode(IoSession
  session, IoBuffer in, ProtocolDecoderOutput out) throws Exception {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CharsetDecoder decoder =
  (CharsetDecoder) session.getAttribute(DECODER);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (decoder == null) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; decoder =
  charset.newDecoder();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; session.setAttribute(DECODER,
  decoder);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (in.prefixedDataAvailable(4))
  { // first 4 bytes are required to get the length&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int length = in.getInt();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int correlationId =
  in.getInt();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; length = length - 4;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (isClient) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Transaction trxn =
  new Transaction();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; trxn.setCorrelationId(correlationId);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Read response
  message&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte[] bytes = new byte[length];&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; in.get(bytes);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CharBuffer buffer =
  decoder.decode(ByteBuffer.wrap(bytes));&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; trxn.setResponse(new
  String(buffer.array()));&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.write(trxn);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Read request
  message&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; byte[] bytes = new byte[length];&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; in.get(bytes);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; CharBuffer buffer =
  decoder.decode(ByteBuffer.wrap(bytes));&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Transaction trxn =
  new Transaction();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; trxn.setCorrelationId(correlationId);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; trxn.setRequest(new
  String(buffer.array()));&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.write(trxn);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return true;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return false;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;}&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Apache Mina requires a factory class for the decoder and encoder:&lt;/div&gt;
&lt;table border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoTableGrid&quot; style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-yfti-tbllook: 1184;&quot;&gt;
 &lt;tbody&gt;
&lt;tr&gt;
  &lt;td style=&quot;border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 6.65in;&quot; valign=&quot;top&quot; width=&quot;638&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;package com;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import
  java.nio.charset.Charset;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import
  org.apache.mina.core.session.IoSession;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import
  org.apache.mina.filter.codec.ProtocolCodecFactory;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import
  org.apache.mina.filter.codec.ProtocolDecoder;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import
  org.apache.mina.filter.codec.ProtocolEncoder;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;public class
  TransactionCodecFactory implements ProtocolCodecFactory {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private ProtocolEncoder encoder;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private ProtocolDecoder decoder;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public TransactionCodecFactory(Charset
  charset, boolean isClient) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; encoder
  = new TransactionEncoder(charset, isClient);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; decoder = new
  TransactionDecoder(charset, isClient);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public ProtocolEncoder
  getEncoder(IoSession ioSession) throws Exception {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return encoder;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public ProtocolDecoder
  getDecoder(IoSession ioSession) throws Exception {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return decoder;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;}&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Here is the Multiplexer who will send the request and waits
for response and uses a ConcurrentMap to map the transaction id (correlation id)
with its transaction.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;table border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoTableGrid&quot; style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-yfti-tbllook: 1184;&quot;&gt;
 &lt;tbody&gt;
&lt;tr&gt;
  &lt;td style=&quot;border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 6.65in;&quot; valign=&quot;top&quot; width=&quot;638&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;package com;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import
  java.util.concurrent.ConcurrentHashMap;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import
  java.util.concurrent.ConcurrentMap;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import
  java.util.concurrent.TimeUnit;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import
  org.apache.mina.core.future.WriteFuture;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import
  org.apache.mina.core.session.IoSession;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;public class
  Multiplexer {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static ConcurrentMap
  &lt;integer transaction=&quot;&quot;&gt; responseMap = new ConcurrentHashMap&lt;integer transaction=&quot;&quot;&gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/integer&gt;&lt;/integer&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static Transaction
  sendAndReceive(IoSession session, String request) throws Throwable {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Transaction trxn = new
  Transaction();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; trxn.setRequest(request);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; responseMap.put(trxn.getCorrelationId(),
  trxn);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Send the request&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WriteFuture writeFuture =
  session.write(trxn);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Send and wait for response&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; boolean
  isSent = writeFuture.await(30, TimeUnit.SECONDS);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (!isSent) { &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; //
  timeout&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; throw
  new Exception(&quot;Could not sent the request in &quot; + 30 + &quot;
  seconds.&quot;); &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
  if (writeFuture.getException() != null) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw
  writeFuture.getException();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
  trxn.waitResponse(30, TimeUnit.SECONDS);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
  responseMap.remove(trxn.getCorrelationId());&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
  &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (trxn.getResponse() == null) {
  &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; //
  timeout&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw new Exception(&quot;Could
  not receive the response in &quot; + 30 + &quot; seconds.&quot;); &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return trxn;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (InterruptedException e)
  {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw e;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (Exception e) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw e;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (Throwable e) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw e;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void resposeReceived(Transaction
  trxn) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if
  (responseMap.get(trxn.getCorrelationId()) != null) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; responseMap.get(trxn.getCorrelationId()).responseReceived(trxn.getResponse());&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&quot;Multiplexer.resposeReceived()&amp;gt;&amp;gt;&amp;gt;This
  response is already timedout:&quot;+trxn.getCorrelationId());&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;}&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Now we will show you the Handler; it is a simple class where
it will only notify the multiplexer that a response is a received and the
Multiplexer will do the needed correlation based on its ConcurrentMap and the
correlation Id&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;table border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoTableGrid&quot; style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-yfti-tbllook: 1184;&quot;&gt;
 &lt;tbody&gt;
&lt;tr&gt;
  &lt;td style=&quot;border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 6.65in;&quot; valign=&quot;top&quot; width=&quot;638&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;package com;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import
  org.apache.mina.core.service.IoHandler;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import
  org.apache.mina.core.session.IdleStatus;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import
  org.apache.mina.core.session.IoSession;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import
  org.apache.mina.transport.socket.nio.NioSocketConnector;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;public class
  ClientSessionHandler implements IoHandler {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private NioSocketConnector connector;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public
  ClientSessionHandler(NioSocketConnector connector) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.connector = connector;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void exceptionCaught(IoSession
  arg0, Throwable arg1) throws Exception {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arg1.printStackTrace();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void messageReceived(IoSession
  arg0, Object o) throws Exception {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Transaction trxn = (Transaction)
  o;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Multiplexer.resposeReceived(trxn);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void messageSent(IoSession
  session, Object message) throws Exception {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void sessionClosed(IoSession
  arg0) throws Exception {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reconnect(arg0);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void reconnect(IoSession
  session) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
  // Wait for five seconds before reconnecting.s&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
  try {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Thread.sleep( 5000 );&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (InterruptedException e) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.printStackTrace();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
  // Reconnect.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
  connector.connect( session.getRemoteAddress());&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void sessionCreated(IoSession
  arg0) throws Exception {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&quot;ClientSessionHandler.sessionCreated():
  &quot;+arg0.getId());&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void sessionIdle(IoSession arg0,
  IdleStatus arg1) throws Exception {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&quot;ClientSessionHandler.sessionIdle():
  &quot;+arg0.getId());&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void sessionOpened(IoSession
  arg0) throws Exception {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&quot;ClientSessionHandler.sessionOpened():
  &quot;+arg0.getId());&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;}&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Here is a test client:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;table border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoTableGrid&quot; style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-yfti-tbllook: 1184;&quot;&gt;
 &lt;tbody&gt;
&lt;tr&gt;
  &lt;td style=&quot;border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 6.65in;&quot; valign=&quot;top&quot; width=&quot;638&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #7f0055; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;package&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt; com;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #7f0055; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;
  java.net.InetSocketAddress;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #7f0055; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;
  java.nio.charset.Charset;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #7f0055; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;
  java.util.concurrent.Callable;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #7f0055; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;
  java.util.concurrent.CompletionService;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #7f0055; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;
  java.util.concurrent.ExecutorCompletionService;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #7f0055; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;
  java.util.concurrent.ExecutorService;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #7f0055; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;
  java.util.concurrent.Executors;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #7f0055; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;
  javax.swing.JOptionPane;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #7f0055; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;
  org.apache.mina.core.future.CloseFuture;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #7f0055; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;
  org.apache.mina.core.future.ConnectFuture;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #7f0055; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;
  org.apache.mina.core.future.IoFuture;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #7f0055; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt; org.apache.mina.core.future.IoFutureListener;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #7f0055; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;
  org.apache.mina.core.session.IoSession;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #7f0055; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;
  org.apache.mina.filter.codec.ProtocolCodecFilter;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #7f0055; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;
  org.apache.mina.filter.logging.LoggingFilter;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #7f0055; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;
  org.apache.mina.transport.socket.SocketSessionConfig;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #7f0055; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;import&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;
  org.apache.mina.transport.socket.nio.NioSocketConnector;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #7f0055; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;public&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt; &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #7f0055; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;class&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt; MainClient {&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #7f0055; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;public&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt; &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #7f0055; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;static&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt; &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #7f0055; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;void&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt; main(String[]
  args) &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #7f0055; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;throws&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt; Exception {&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IoSession session = &lt;i&gt;init&lt;/i&gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;i&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; write&lt;/span&gt;&lt;/i&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;(session, &lt;/span&gt;&lt;span style=&quot;color: #2a00ff; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&quot;HELLO
  SERVER&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #7f0055; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;private&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt; &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #7f0055; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;static&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt; Transaction
  write(&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #7f0055; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;final&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt; IoSession session, &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #7f0055; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;final&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt; String
  request) {&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Transaction trxn = &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #7f0055; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;null&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #7f0055; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;try&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt; {&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; trxn = Multiplexer.&lt;i&gt;sendAndReceive&lt;/i&gt;(session,
  request); &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.&lt;/span&gt;&lt;i&gt;&lt;span style=&quot;color: #0000c0; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;out&lt;/span&gt;&lt;/i&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;.println(&lt;/span&gt;&lt;span style=&quot;color: #2a00ff; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&quot;XXX:&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;+trxn.getCorrelationId()+&lt;/span&gt;&lt;span style=&quot;color: #2a00ff; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&quot;==&amp;gt;Response:&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;+trxn.getResponse()+&lt;/span&gt;&lt;span style=&quot;color: #2a00ff; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&quot;,
  trxn.request:&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;+trxn.getRequest());&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #7f0055; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;catch&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;
  (InterruptedException e) {&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.printStackTrace();&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #7f0055; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;catch&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt; (Exception e)
  {&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.printStackTrace();&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #7f0055; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;catch&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt; (Throwable e)
  {&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.printStackTrace();&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #7f0055; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;return&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt; trxn;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 0.0001pt 0.5in;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #7f0055; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;private&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt; &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #7f0055; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;static&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt; IoSession
  init() &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #7f0055; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;throws&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt; Exception {&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
  NioSocketConnector connector = &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #7f0055; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;new&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;
  NioSocketConnector();&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
  connector.setConnectTimeoutMillis(30000);&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
  ((SocketSessionConfig) connector.getSessionConfig()).setTcpNoDelay(&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #7f0055; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;true&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;);&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
  connector.getFilterChain().addLast(&lt;/span&gt;&lt;span style=&quot;color: #2a00ff; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&quot;plain_logger&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;, &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #7f0055; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;new&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;
  LoggingFilter());&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
  connector.getFilterChain().addLast(&lt;/span&gt;&lt;span style=&quot;color: #2a00ff; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&quot;codec&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;, &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #7f0055; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;new&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt; ProtocolCodecFilter(&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #7f0055; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;new&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;
  TransactionCodecFactory(Charset.&lt;i&gt;forName&lt;/i&gt;(&lt;/span&gt;&lt;span style=&quot;color: #2a00ff; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&quot;UTF-8&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;), &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #7f0055; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;true&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;)));&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
  connector.getFilterChain().addLast(&lt;/span&gt;&lt;span style=&quot;color: #2a00ff; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&quot;encoded_logger&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;, &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #7f0055; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;new&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;
  LoggingFilter());&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
  &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
  connector.setHandler(&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #7f0055; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;new&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;
  ClientSessionHandler(connector));&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
  ConnectFuture connectFuture = connector.connect(&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #7f0055; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;new&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;
  InetSocketAddress(&lt;/span&gt;&lt;span style=&quot;color: #2a00ff; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&quot;127.0.0.1&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;, 2345));&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
  IoSession session = connectFuture.await().getSession();&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
  &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #7f0055; font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;return&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt; session;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 8.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 8pt;&quot;&gt;}&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://raikblog.blogspot.com/feeds/2230739774167211209/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://raikblog.blogspot.com/2013/05/apache-mina-client-side-to-correlate.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/2230739774167211209'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/2230739774167211209'/><link rel='alternate' type='text/html' href='http://raikblog.blogspot.com/2013/05/apache-mina-client-side-to-correlate.html' title='Apache Mina: Client side to Correlate Response with its Request'/><author><name>Haitham Raik</name><uri>http://www.blogger.com/profile/04008662680572575275</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7677652326497115767.post-1782412164731732432</id><published>2013-03-30T03:35:00.000+03:00</published><updated>2013-10-10T13:13:39.648+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="NoSQL"/><title type='text'>Not Only RDBMS</title><content type='html'>&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: .0001pt; margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: .0001pt; margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;
Since the 1970’s, relational
databases became the mainstream due to several reasons:&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: .0001pt; margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;Simplicity.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;Easy ad-hoc-queries, with
very powerful query languages.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;Solid normalization rules.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;Support JOIN operations
between multiple tables through foreign keys&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;Easy data manipulation.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;Extensive security models.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;Supports Transactions and
Full ACID guarantees; &lt;/span&gt;&lt;b style=&quot;text-indent: -0.25in;&quot;&gt;A&lt;/b&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;tomic, &lt;/span&gt;&lt;b style=&quot;text-indent: -0.25in;&quot;&gt;C&lt;/b&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;onsistent, &lt;/span&gt;&lt;b style=&quot;text-indent: -0.25in;&quot;&gt;I&lt;/b&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;solated and &lt;/span&gt;&lt;b style=&quot;text-indent: -0.25in;&quot;&gt;D&lt;/b&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;urable&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;Strong mathematical
operations.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;Different indexing
capabilities.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;Data modeling is schema
based; each record in a relational database conforms to a schema – with a fixed
number of fields (columns).&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;MsoListParagraph&quot; style=&quot;margin-bottom: 0.0001pt; text-indent: -0.25in;&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraph&quot; style=&quot;margin-bottom: 0.0001pt; text-indent: -0.25in;&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraph&quot; style=&quot;margin-bottom: 0.0001pt; text-indent: -0.25in;&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraph&quot; style=&quot;margin-bottom: 0.0001pt; text-indent: -0.25in;&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraph&quot; style=&quot;margin-bottom: 0.0001pt; text-indent: -0.25in;&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraph&quot; style=&quot;margin-bottom: 0.0001pt; text-indent: -0.25in;&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraph&quot; style=&quot;margin-bottom: 0.0001pt; text-indent: -0.25in;&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraph&quot; style=&quot;margin-bottom: 0.0001pt; text-indent: -0.25in;&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraph&quot; style=&quot;margin-bottom: 0.0001pt; text-indent: -0.25in;&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraph&quot; style=&quot;margin-bottom: 0.0001pt; text-indent: -0.25in;&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: .0001pt; margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;
Those features are really good and
indispensable if you are going to develop some enterprise software system, but
yet these features have major impact on the performance. &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: .0001pt; margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;
There are cases where some of the
above features can be dispensed in order to improve the performance. For
example:&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: .0001pt; margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;
&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;You don’t need relational
data model&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;When you want to work with graph structures; although graph
structures can be modeled in RDBMS, but this has serious query performance
implications for recursive structures like for instance file trees and network
structures, e.g. social graphs&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;You don’t need a complex
security model&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;When your DB is a backend for a web application, and there may
be just one user (the application server) connected to your DB at production
time&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;You don’t need fixed schema
(fixed number of fields for each record)&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;When your application depends on more flexible data model
(schemaless) this allows you to freely add new fields without having to define
changes. This is especially needed in Content Management Systems, where the
metadata associated with the content can change dramatically&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;You don’t need the
normalizations and JOIN operations&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;When faster analysis/reporting on extremely large databases is
required; although the RDBMS star schema is used for speed but it still has
problems with large joins if there is a need to join multiple large fact
tables. Star schemas will outperform when it comes to extremely large databases
but it is expensive, maintenance heavy, and usually requires big iron&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;You don’t need data
manipulation&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;When the data can’t be changed after inserting it, for example
in the Audit Trails and Tracking Systems.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;You don’t need Transactions&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;When record-level atomicity with row-level locking is enough,
for example you need a centralized database to store servers and applications
logs. logging operations don&#39;t require complex atomicity.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ol&gt;
&lt;div class=&quot;MsoListParagraph&quot; style=&quot;margin: 0in 0in 0.0001pt 1in; text-indent: -0.25in;&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: .0001pt; margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;
NoSQL (Non-Relational Databases) paid
a lot of attention to the trade-offs&amp;nbsp;between consistency, fault-tolerance and
performance to serve geographically distributed systems, low-latency or highly
available applications. NoSQL’s primary goal is to achieve best performance and
horizontal scalability. It attains this by reducing transactional semantics and
referential integrity.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: .0001pt; margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;&quot;&gt;
Today we have many NoSQL products and
the following are the most common options:&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;&lt;b style=&quot;text-indent: -0.25in;&quot;&gt;HBase&lt;/b&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;:&lt;/span&gt;&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;Don’t guarantee full ACID transactions;
it only supports row-level atomicity.&lt;/li&gt;
&lt;li&gt;Don’t support relational
data model and thus don’t support JOIN operations&lt;/li&gt;
&lt;li&gt;Support Free schema&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Best used&lt;/b&gt;: for
search engines and analyzing log data.&lt;/li&gt;
&lt;/ol&gt;
&lt;li&gt;&lt;b&gt;Cassandra&lt;/b&gt;:&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;Don’t guarantee full ACID transactions;
it only supports row-level atomicity.&lt;/li&gt;
&lt;li&gt;Support coarse-grained
security model&lt;/li&gt;
&lt;li&gt;Don’t support relational
data model and thus don’t support JOIN operations&lt;/li&gt;
&lt;li&gt;Supports data partitioning.&lt;/li&gt;
&lt;li&gt;Don’t provide ad-hoc
queries. Complex queries should be pre-planned&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Best used&lt;/b&gt;: when you
write more than you read (user activity logs)&lt;/li&gt;
&lt;/ol&gt;
&lt;li&gt;&lt;b&gt;MongoDB&lt;/b&gt;:&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;Don’t guarantee full ACID transactions;
it only supports row-level atomicity and writes isolation.&lt;/li&gt;
&lt;li&gt;Support data partitioning&lt;/li&gt;
&lt;li&gt;Supports consistency: you
can choose what level of consistency you want depending on the value of the
data (e.g. faster performance = fire and forget inserts to MongoDB, slower
performance = wait till insert has been replicated to multiple nodes before
returning)&lt;/li&gt;
&lt;li&gt;Don’t support relational
data model and thus don’t support JOIN operations&lt;/li&gt;
&lt;li&gt;Supports Document-oriented
storage with free schema&lt;/li&gt;
&lt;li&gt;Supports dynamic queries as
well as aggregate functions&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Best used&lt;/b&gt;: If you
need dynamic queries and data analysis. It is also useful in the logging
systems as well as content management systems.&lt;/li&gt;
&lt;/ol&gt;
&lt;li&gt;&lt;b&gt;Neo4J&lt;/b&gt;&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;Guarantee full ACID
transactions.&lt;/li&gt;
&lt;li&gt;Uses a graph model for data
representation&lt;/li&gt;
&lt;li&gt;Supports ad-hoc queries
with powerful query language&lt;/li&gt;
&lt;li&gt;Supports Online backup,
advanced monitoring and High Availability&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Best Used&lt;/b&gt;: For
searching routes in social relations, public transport links, road maps, or
network topologies.&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpLast&quot; style=&quot;margin-left: .75in; mso-add-space: auto; mso-list: l1 level2 lfo1; tab-stops: 58.5pt; text-indent: -.25in;&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: .0001pt; margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; tab-stops: 58.5pt;&quot;&gt;
Relational
databases are suitable for 99% of the real world applications. You can
practically do anything with relational databases. But, there are limitations
on speed and scaling when it comes to massive high availability data stores.&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: .0001pt; margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; tab-stops: 58.5pt;&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-top: 12.0pt; tab-stops: 58.5pt;&quot;&gt;
NoSQL can give up
some features of the relational databases for speed.&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-top: 12.0pt; tab-stops: 58.5pt;&quot;&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: .0001pt; margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; tab-stops: 58.5pt;&quot;&gt;
This&amp;nbsp;doesn&#39;t&amp;nbsp;mean
the RDBMS is dead and it&amp;nbsp;doesn&#39;t&amp;nbsp;mean to choose either an RDBMS or NoSQL. The
solution is to use different data storage technologies based upon the way data
is being used by individual applications (Polyglot Persistence).&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-top: 12.0pt; tab-stops: 58.5pt;&quot;&gt;
The following
diagram shows an enterprise system where different applications use different
data storage:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIM3gyjyzJlWVTLV3xqpI0UHJ95w0-DHKIcqAXdDrd-xSJX-k_COOamvPX67qlSf265VYPLiKqi4dvc_u1Z_i1ISM9wJbDfzHvb43tfZrEJyj39gMH4E9BnnUC6ko1in6VK1Tq6qHQZMIe/s1600/plolyglotpersistence.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;466&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIM3gyjyzJlWVTLV3xqpI0UHJ95w0-DHKIcqAXdDrd-xSJX-k_COOamvPX67qlSf265VYPLiKqi4dvc_u1Z_i1ISM9wJbDfzHvb43tfZrEJyj39gMH4E9BnnUC6ko1in6VK1Tq6qHQZMIe/s640/plolyglotpersistence.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-top: 12.0pt; tab-stops: 58.5pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-top: 12.0pt; tab-stops: 58.5pt;&quot;&gt;
&lt;b&gt;References:&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-top: 12.0pt; tab-stops: 58.5pt;&quot;&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Symbol; text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span dir=&quot;LTR&quot; style=&quot;text-indent: -0.25in;&quot;&gt;&lt;/span&gt;&lt;a href=&quot;http://blog.cloudera.com/blog/2011/04/hbase-dos-and-donts/#usecases&quot; style=&quot;text-indent: -0.25in;&quot;&gt;http://blog.cloudera.com/blog/2011/04/hbase-dos-and-donts/#usecases&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Symbol; text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span dir=&quot;LTR&quot; style=&quot;text-indent: -0.25in;&quot;&gt;&lt;/span&gt;&lt;a href=&quot;http://docs.mongodb.org/manual/faq/fundamentals/#what-kind-of-database-is-mongodb&quot; style=&quot;text-indent: -0.25in;&quot;&gt;http://docs.mongodb.org/manual/faq/fundamentals/#what-kind-of-database-is-mongodb&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis&quot; style=&quot;text-indent: -0.25in;&quot;&gt;http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis&lt;/a&gt;&lt;span style=&quot;font-family: Symbol; text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://highscalability.com/blog/2011/6/20/35-use-cases-for-choosing-your-next-nosql-database.html&quot; style=&quot;text-indent: -0.25in;&quot;&gt;http://highscalability.com/blog/2011/6/20/35-use-cases-for-choosing-your-next-nosql-database.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Symbol; text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span dir=&quot;LTR&quot; style=&quot;text-indent: -0.25in;&quot;&gt;&lt;/span&gt;&lt;a href=&quot;http://readwrite.com/2011/02/03/the-big-list-of-nosql-use-case&quot; style=&quot;text-indent: -0.25in;&quot;&gt;http://readwrite.com/2011/02/03/the-big-list-of-nosql-use-case&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Symbol; text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span dir=&quot;LTR&quot; style=&quot;text-indent: -0.25in;&quot;&gt;&lt;/span&gt;&lt;a href=&quot;http://www.johndcook.com/blog/2009/07/06/brewer-cap-theorem-base/&quot; style=&quot;text-indent: -0.25in;&quot;&gt;http://www.johndcook.com/blog/2009/07/06/brewer-cap-theorem-base/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;&quot;&gt;&lt;a href=&quot;http://martinfowler.com/articles/nosql-intro.pdf&quot;&gt;http://martinfowler.com/articles/nosql-intro.pdf&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-top: 12.0pt; tab-stops: 58.5pt;&quot;&gt;
&lt;span dir=&quot;LTR&quot; style=&quot;text-indent: -0.25in;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpLast&quot; style=&quot;margin-top: 12.0pt; mso-add-space: auto; mso-list: l3 level1 lfo5; tab-stops: 58.5pt; text-indent: -.25in;&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://raikblog.blogspot.com/feeds/1782412164731732432/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://raikblog.blogspot.com/2013/03/not-only-rdbms.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/1782412164731732432'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/1782412164731732432'/><link rel='alternate' type='text/html' href='http://raikblog.blogspot.com/2013/03/not-only-rdbms.html' title='Not Only RDBMS'/><author><name>Haitham Raik</name><uri>http://www.blogger.com/profile/04008662680572575275</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIM3gyjyzJlWVTLV3xqpI0UHJ95w0-DHKIcqAXdDrd-xSJX-k_COOamvPX67qlSf265VYPLiKqi4dvc_u1Z_i1ISM9wJbDfzHvb43tfZrEJyj39gMH4E9BnnUC6ko1in6VK1Tq6qHQZMIe/s72-c/plolyglotpersistence.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7677652326497115767.post-8482977572790696936</id><published>2013-03-10T15:31:00.001+03:00</published><updated>2013-04-01T10:05:17.984+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Performance Monitoring and Tuning"/><title type='text'>Hung thread detection in WebSphere Application Server</title><content type='html'>&lt;span style=&quot;background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;Websphere application server provides hung thread detection policy to detect the hung threads by sending notifications in the log files&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.websphereusergroup.org/josephamrithraj/blog/2011/07/29/hung_thread_detection_in_websphere_application_server#.UTx7PfxCOGQ.blogger&quot;&gt;Websphereusergroup.org | Joseph | Hung thread detection in WebSphere Application Server&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://raikblog.blogspot.com/feeds/8482977572790696936/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://raikblog.blogspot.com/2013/03/hung-thread-detection-in-websphere.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/8482977572790696936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/8482977572790696936'/><link rel='alternate' type='text/html' href='http://raikblog.blogspot.com/2013/03/hung-thread-detection-in-websphere.html' title='Hung thread detection in WebSphere Application Server'/><author><name>Haitham Raik</name><uri>http://www.blogger.com/profile/04008662680572575275</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7677652326497115767.post-2068156049109381683</id><published>2013-03-10T15:18:00.001+03:00</published><updated>2013-04-01T10:28:31.946+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="JSON JAXB"/><title type='text'>StAXON - JSON via StAX</title><content type='html'>&lt;span style=&quot;background-color: white; color: #222222; font-family: Helvetica, arial, verdana; font-size: 15px; line-height: 22px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://github.com/beckchr/staxon/&quot; style=&quot;background-color: white; border: 0px; color: #20328e; font-family: Helvetica, arial, verdana; font-size: 15px; line-height: 22px; margin: 0px; outline: 0px; padding: 0px; text-decoration: initial; vertical-align: baseline;&quot;&gt;StAXON&lt;/a&gt;&lt;span style=&quot;background-color: white; color: #222222; font-family: Helvetica, arial, verdana; font-size: 15px; line-height: 22px;&quot;&gt;&amp;nbsp;project (APL2) which tries to give you the best from both worlds:&amp;nbsp;&lt;/span&gt;&lt;em style=&quot;background-color: white; border: 0px; color: #222222; font-family: Helvetica, arial, verdana; font-size: 15px; line-height: 22px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;JSON outside, but XML inside&lt;/em&gt;&lt;span style=&quot;background-color: white; color: #222222; font-family: Helvetica, arial, verdana; font-size: 15px; line-height: 22px;&quot;&gt;. One benefit from this is that you can integrate JSON with powerful XML-related technologies (Xpath, JAXB, and etc.) for free&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://java.dzone.com/articles/staxon-json-stax#.UTx19Ve3jIw.blogger&quot;&gt;StAXON - JSON via StAX | Javalobby&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://raikblog.blogspot.com/feeds/2068156049109381683/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://raikblog.blogspot.com/2013/03/staxon-json-via-stax.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/2068156049109381683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/2068156049109381683'/><link rel='alternate' type='text/html' href='http://raikblog.blogspot.com/2013/03/staxon-json-via-stax.html' title='StAXON - JSON via StAX'/><author><name>Haitham Raik</name><uri>http://www.blogger.com/profile/04008662680572575275</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7677652326497115767.post-4783065982839351879</id><published>2013-03-10T14:59:00.000+03:00</published><updated>2013-04-04T21:25:38.611+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Performance Monitoring and Tuning"/><title type='text'>Websphere Application Server v7 - Extended Features</title><content type='html'>&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a aria-expanded=&quot;true&quot; aria-level=&quot;4&quot; aria-posinset=&quot;3&quot; aria-setsize=&quot;10&quot; class=&quot;&quot; href=&quot;http://pic.dhe.ibm.com/infocenter/wasinfo/v6r1/topic/com.ibm.websphere.express.doc/info/exp/ae/welc6tech_asb.html&quot; role=&quot;treeitem&quot; style=&quot;font-family: Arial; font-size: 16px; padding-right: 2px; text-decoration: initial; white-space: nowrap;&quot; title=&quot;Asynchronous beans&quot;&gt;Asynchronous beans&lt;/a&gt;(This feature will be included in JEE v7 Specs):&amp;nbsp;&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 13px;&quot;&gt;An asynchronous bean is a Java object or enterprise bean that can be executed asynchronously by a Java 2 Platform Enterprise Edition (J2EE) application, using the J2EE context of the asynchronous bean creator&lt;/span&gt;.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 13px;&quot;&gt;Work object threads are fully supported by the application server and have the same properties as other asynchronous beans.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: x-small;&quot;&gt;&lt;a href=&quot;http://gee.cs.oswego.edu/dl/concurrencyee-interest/JavaOne-EEConcurrency.pdf&quot;&gt;http://gee.cs.oswego.edu/dl/concurrencyee-interest/JavaOne-EEConcurrency.pdf&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;a aria-expanded=&quot;true&quot; aria-level=&quot;4&quot; aria-posinset=&quot;7&quot; aria-setsize=&quot;10&quot; class=&quot;&quot; href=&quot;http://pic.dhe.ibm.com/infocenter/wasinfo/v6r1/topic/com.ibm.websphere.express.doc/info/exp/ae/welc6tech_objp.html&quot; role=&quot;treeitem&quot; style=&quot;font-family: Arial; font-size: 16px; padding-right: 2px; text-decoration: initial; white-space: nowrap;&quot; title=&quot;Object pools&quot;&gt;Object pools&lt;/a&gt;:&amp;nbsp;&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 13px;&quot;&gt;provide an effective means of improving application performance at run time, by supporting the reuse of multiple instances of objects.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a aria-expanded=&quot;true&quot; aria-level=&quot;4&quot; aria-posinset=&quot;9&quot; aria-setsize=&quot;10&quot; class=&quot;&quot; href=&quot;http://pic.dhe.ibm.com/infocenter/wasinfo/v6r1/topic/com.ibm.websphere.express.doc/info/exp/ae/welc6tech_sub.html&quot; role=&quot;treeitem&quot; style=&quot;font-family: Arial; font-size: 16px; padding-right: 2px; text-decoration: initial; white-space: nowrap;&quot; title=&quot;Startup beans&quot;&gt;Startup beans&lt;/a&gt;&amp;nbsp;(This feature will be included in&amp;nbsp;EJB v3.1 specs):&amp;nbsp;&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 13px;&quot;&gt;allow business logic to run when an EJB application starts or stops.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 13px;&quot;&gt;&lt;a aria-expanded=&quot;true&quot; aria-level=&quot;5&quot; aria-posinset=&quot;4&quot; aria-setsize=&quot;10&quot; href=&quot;http://pic.dhe.ibm.com/infocenter/wasinfo/v6r1/topic/com.ibm.websphere.express.doc/info/exp/ae/welc6tech_dyn.html&quot; role=&quot;treeitem&quot; style=&quot;font-family: Arial; font-size: 16px; padding-right: 2px; white-space: nowrap;&quot; title=&quot;Dynamic cache&quot;&gt;Dynamic cache&lt;/a&gt;:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 13px;&quot;&gt;Caching the output of servlets, commands, and JavaServer Pages (JSP) improves application performance&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 13px;&quot;&gt;DistributedMap and DistributedObjectCache: Supports objects replication among cluster instances&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ol&gt;
</content><link rel='replies' type='application/atom+xml' href='http://raikblog.blogspot.com/feeds/4783065982839351879/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://raikblog.blogspot.com/2013/03/websphere-application-server-v7.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/4783065982839351879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/4783065982839351879'/><link rel='alternate' type='text/html' href='http://raikblog.blogspot.com/2013/03/websphere-application-server-v7.html' title='Websphere Application Server v7 - Extended Features'/><author><name>Haitham Raik</name><uri>http://www.blogger.com/profile/04008662680572575275</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7677652326497115767.post-5543751259030962914</id><published>2013-01-29T16:14:00.001+03:00</published><updated>2013-04-01T10:28:43.160+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Oracle"/><title type='text'>Oracle Hierarchical Queries</title><content type='html'>&lt;br /&gt;
&lt;div style=&quot;background-color: white; color: #222222; font-family: Tahoma, sans-serif; font-size: small; line-height: 19px; max-width: 70em;&quot;&gt;
If a table contains hierarchical data, then you can select rows in a hierarchical order using the hierarchical query clause:&lt;/div&gt;
&lt;div class=&quot;subhead2&quot; style=&quot;background-color: white; color: #222222; font-family: Tahoma, sans-serif; font-size: small; font-weight: bold; line-height: 19px; max-width: 70em;&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=7677652326497115767&quot; id=&quot;sthref3133&quot; name=&quot;sthref3133&quot;&gt;&lt;/a&gt;&lt;span class=&quot;italic&quot; style=&quot;font-style: italic;&quot;&gt;hierarchical_query_clause&lt;/span&gt;::=&lt;/div&gt;
&lt;img alt=&quot;Description of hierarchical_query_clause.gif follows&quot; height=&quot;46&quot; src=&quot;http://docs.oracle.com/cd/B19306_01/server.102/b14200/img/hierarchical_query_clause.gif&quot; style=&quot;background-color: white; color: #222222; font-family: Tahoma, sans-serif; font-size: small; line-height: 19px;&quot; title=&quot;Description of hierarchical_query_clause.gif follows&quot; width=&quot;579&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://docs.oracle.com/cd/B19306_01/server.102/b14200/queries003.htm&quot;&gt;Hierarchical Queries&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://raikblog.blogspot.com/feeds/5543751259030962914/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://raikblog.blogspot.com/2013/01/hierarchical-queries.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/5543751259030962914'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/5543751259030962914'/><link rel='alternate' type='text/html' href='http://raikblog.blogspot.com/2013/01/hierarchical-queries.html' title='Oracle Hierarchical Queries'/><author><name>Haitham Raik</name><uri>http://www.blogger.com/profile/04008662680572575275</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7677652326497115767.post-4268897082798607659</id><published>2012-12-03T12:46:00.001+03:00</published><updated>2013-04-01T10:05:17.974+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Performance Monitoring and Tuning"/><title type='text'>Performance Tuning Process</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaYFqFujeAhcmTVZc1IHv8gVDF1kx3hmSpfUIPkcg2k-kWXxzcXjzs4jx2k6Wqd3CFzypg3zXkxubGsamFf5U0ugZGltRlJCNI3JwV-O9gKY6PE0GNc5WJDBy6NiGhA82xxyJR1-MEWSpz/s1600/Performance+Tuning+Process.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;299&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaYFqFujeAhcmTVZc1IHv8gVDF1kx3hmSpfUIPkcg2k-kWXxzcXjzs4jx2k6Wqd3CFzypg3zXkxubGsamFf5U0ugZGltRlJCNI3JwV-O9gKY6PE0GNc5WJDBy6NiGhA82xxyJR1-MEWSpz/s640/Performance+Tuning+Process.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://raikblog.blogspot.com/feeds/4268897082798607659/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://raikblog.blogspot.com/2012/12/performance-tuning-process.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/4268897082798607659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/4268897082798607659'/><link rel='alternate' type='text/html' href='http://raikblog.blogspot.com/2012/12/performance-tuning-process.html' title='Performance Tuning Process'/><author><name>Haitham Raik</name><uri>http://www.blogger.com/profile/04008662680572575275</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaYFqFujeAhcmTVZc1IHv8gVDF1kx3hmSpfUIPkcg2k-kWXxzcXjzs4jx2k6Wqd3CFzypg3zXkxubGsamFf5U0ugZGltRlJCNI3JwV-O9gKY6PE0GNc5WJDBy6NiGhA82xxyJR1-MEWSpz/s72-c/Performance+Tuning+Process.PNG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7677652326497115767.post-2333816049695359187</id><published>2012-11-29T15:27:00.001+03:00</published><updated>2013-04-01T10:05:17.967+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Performance Monitoring and Tuning"/><title type='text'>Monitoring Enterprise Java Application</title><content type='html'>&lt;table border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoTableLightListAccent5&quot; style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid #4BACC6 1.0pt; mso-border-themecolor: accent5; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-table-layout-alt: fixed; mso-yfti-tbllook: 1184; width: 638px;&quot;&gt;
 &lt;tbody&gt;
&lt;tr&gt;
  &lt;td style=&quot;background: #4BACC6; border-bottom: none; border-left: solid #4BACC6 1.0pt; border-right: none; border-top: solid #4BACC6 1.0pt; mso-background-themecolor: accent5; mso-border-left-themecolor: accent5; mso-border-top-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 172.4pt;&quot; valign=&quot;top&quot; width=&quot;230&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: white; mso-themecolor: background1;&quot;&gt;Monitor&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: #4BACC6; border-top: solid #4BACC6 1.0pt; border: none; mso-background-themecolor: accent5; mso-border-top-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 123.0pt;&quot; valign=&quot;top&quot; width=&quot;164&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: white; mso-themecolor: background1;&quot;&gt;Alert&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: #4BACC6; border-top: solid #4BACC6 1.0pt; border: none; mso-background-themecolor: accent5; mso-border-top-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 91.7pt;&quot; valign=&quot;top&quot; width=&quot;122&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: white; mso-themecolor: background1;&quot;&gt;Technique&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: #4BACC6; border-bottom: none; border-left: none; border-right: solid #4BACC6 1.0pt; border-top: solid #4BACC6 1.0pt; mso-background-themecolor: accent5; mso-border-right-themecolor: accent5; mso-border-top-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 91.7pt;&quot; valign=&quot;top&quot; width=&quot;122&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: white; mso-themecolor: background1;&quot;&gt;Type&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-right: none; border: solid #4BACC6 1.0pt; mso-border-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 172.4pt;&quot; valign=&quot;top&quot; width=&quot;230&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;New database connection is acquisitioned&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;Database connection is closed&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #4BACC6 1.0pt; border-left: none; border-right: none; border-top: solid #4BACC6 1.0pt; mso-border-bottom-themecolor: accent5; mso-border-top-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 123.0pt;&quot; valign=&quot;top&quot; width=&quot;164&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
When the number of active connections exceeds
  threshold&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #4BACC6 1.0pt; border-left: none; border-right: none; border-top: solid #4BACC6 1.0pt; mso-border-bottom-themecolor: accent5; mso-border-top-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 91.7pt;&quot; valign=&quot;top&quot; width=&quot;122&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
Datasource proxy, log4jdbc, JAMon&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-left: none; border: solid #4BACC6 1.0pt; mso-border-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 91.7pt;&quot; valign=&quot;top&quot; width=&quot;122&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
Counter&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-left: solid #4BACC6 1.0pt; border: none; mso-border-left-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 172.4pt;&quot; valign=&quot;top&quot; width=&quot;230&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;New queue connection is acquisitioned&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;Queue connection is closed&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border: none; padding: 0in 5.4pt 0in 5.4pt; width: 123.0pt;&quot; valign=&quot;top&quot; width=&quot;164&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
When the number of active connections exceeds threshold&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border: none; padding: 0in 5.4pt 0in 5.4pt; width: 91.7pt;&quot; valign=&quot;top&quot; width=&quot;122&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
Queue Connection Factory proxy&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-right: solid #4BACC6 1.0pt; border: none; mso-border-right-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 91.7pt;&quot; valign=&quot;top&quot; width=&quot;122&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
Counter&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-right: none; border: solid #4BACC6 1.0pt; mso-border-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 172.4pt;&quot; valign=&quot;top&quot; width=&quot;230&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;SQL processing time&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #4BACC6 1.0pt; border-left: none; border-right: none; border-top: solid #4BACC6 1.0pt; mso-border-bottom-themecolor: accent5; mso-border-top-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 123.0pt;&quot; valign=&quot;top&quot; width=&quot;164&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
When the processing time exceeds threshold&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #4BACC6 1.0pt; border-left: none; border-right: none; border-top: solid #4BACC6 1.0pt; mso-border-bottom-themecolor: accent5; mso-border-top-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 91.7pt;&quot; valign=&quot;top&quot; width=&quot;122&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
Connection proxy,&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
PreparedStatement Proxy, log4jdbc, JAMon, Perf4J&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-left: none; border: solid #4BACC6 1.0pt; mso-border-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 91.7pt;&quot; valign=&quot;top&quot; width=&quot;122&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
Timing&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-left: solid #4BACC6 1.0pt; border: none; mso-border-left-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 172.4pt;&quot; valign=&quot;top&quot; width=&quot;230&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;Web service execution time&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border: none; padding: 0in 5.4pt 0in 5.4pt; width: 123.0pt;&quot; valign=&quot;top&quot; width=&quot;164&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
When the processing time exceeds threshold&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border: none; padding: 0in 5.4pt 0in 5.4pt; width: 91.7pt;&quot; valign=&quot;top&quot; width=&quot;122&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
Servlet Filter, Perf4J&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-right: solid #4BACC6 1.0pt; border: none; mso-border-right-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 91.7pt;&quot; valign=&quot;top&quot; width=&quot;122&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
Timing&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-right: none; border: solid #4BACC6 1.0pt; mso-border-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 172.4pt;&quot; valign=&quot;top&quot; width=&quot;230&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;New Web session is created&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;Web Session is closed&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #4BACC6 1.0pt; border-left: none; border-right: none; border-top: solid #4BACC6 1.0pt; mso-border-bottom-themecolor: accent5; mso-border-top-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 123.0pt;&quot; valign=&quot;top&quot; width=&quot;164&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
When the number of active web sessions exceeds
  threshold&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #4BACC6 1.0pt; border-left: none; border-right: none; border-top: solid #4BACC6 1.0pt; mso-border-bottom-themecolor: accent5; mso-border-top-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 91.7pt;&quot; valign=&quot;top&quot; width=&quot;122&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
HttpSessionListener&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-left: none; border: solid #4BACC6 1.0pt; mso-border-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 91.7pt;&quot; valign=&quot;top&quot; width=&quot;122&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
Counter&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-left: solid #4BACC6 1.0pt; border: none; mso-border-left-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 172.4pt;&quot; valign=&quot;top&quot; width=&quot;230&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;New web service execution is started&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;Web service execution is completed&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border: none; padding: 0in 5.4pt 0in 5.4pt; width: 123.0pt;&quot; valign=&quot;top&quot; width=&quot;164&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
When the number of active web service calls exceeds threshold&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border: none; padding: 0in 5.4pt 0in 5.4pt; width: 91.7pt;&quot; valign=&quot;top&quot; width=&quot;122&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
Servlet Filter&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-right: solid #4BACC6 1.0pt; border: none; mso-border-right-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 91.7pt;&quot; valign=&quot;top&quot; width=&quot;122&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
Counter&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-right: none; border: solid #4BACC6 1.0pt; mso-border-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 172.4pt;&quot; valign=&quot;top&quot; width=&quot;230&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;New EJB method call is received&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;EJB method execution completed&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #4BACC6 1.0pt; border-left: none; border-right: none; border-top: solid #4BACC6 1.0pt; mso-border-bottom-themecolor: accent5; mso-border-top-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 123.0pt;&quot; valign=&quot;top&quot; width=&quot;164&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
When the active number of EJB methods executions
  exceeds threshold &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #4BACC6 1.0pt; border-left: none; border-right: none; border-top: solid #4BACC6 1.0pt; mso-border-bottom-themecolor: accent5; mso-border-top-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 91.7pt;&quot; valign=&quot;top&quot; width=&quot;122&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
EJB interceptors&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-left: none; border: solid #4BACC6 1.0pt; mso-border-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 91.7pt;&quot; valign=&quot;top&quot; width=&quot;122&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
Counter&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-left: solid #4BACC6 1.0pt; border: none; mso-border-left-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 172.4pt;&quot; valign=&quot;top&quot; width=&quot;230&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;EJB method execution&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border: none; padding: 0in 5.4pt 0in 5.4pt; width: 123.0pt;&quot; valign=&quot;top&quot; width=&quot;164&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
When the execution time exceeds threshold&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border: none; padding: 0in 5.4pt 0in 5.4pt; width: 91.7pt;&quot; valign=&quot;top&quot; width=&quot;122&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
EJB interceptors, Perf4J&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-right: solid #4BACC6 1.0pt; border: none; mso-border-right-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 91.7pt;&quot; valign=&quot;top&quot; width=&quot;122&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
Timing&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-right: none; border: solid #4BACC6 1.0pt; mso-border-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 172.4pt;&quot; valign=&quot;top&quot; width=&quot;230&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;Components availability&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #4BACC6 1.0pt; border-left: none; border-right: none; border-top: solid #4BACC6 1.0pt; mso-border-bottom-themecolor: accent5; mso-border-top-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 123.0pt;&quot; valign=&quot;top&quot; width=&quot;164&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
When component is not available&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #4BACC6 1.0pt; border-left: none; border-right: none; border-top: solid #4BACC6 1.0pt; mso-border-bottom-themecolor: accent5; mso-border-top-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 91.7pt;&quot; valign=&quot;top&quot; width=&quot;122&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
Heartbeat&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-left: none; border: solid #4BACC6 1.0pt; mso-border-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 91.7pt;&quot; valign=&quot;top&quot; width=&quot;122&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
Boolean&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-left: solid #4BACC6 1.0pt; border: none; mso-border-left-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 172.4pt;&quot; valign=&quot;top&quot; width=&quot;230&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;DB availability&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border: none; padding: 0in 5.4pt 0in 5.4pt; width: 123.0pt;&quot; valign=&quot;top&quot; width=&quot;164&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
When DB is not reachable for more than X seconds&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border: none; padding: 0in 5.4pt 0in 5.4pt; width: 91.7pt;&quot; valign=&quot;top&quot; width=&quot;122&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
Dummy SQL statement, Perf4J&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-right: solid #4BACC6 1.0pt; border: none; mso-border-right-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 91.7pt;&quot; valign=&quot;top&quot; width=&quot;122&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
Timing&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-right: none; border: solid #4BACC6 1.0pt; mso-border-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 172.4pt;&quot; valign=&quot;top&quot; width=&quot;230&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;Queue availability&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #4BACC6 1.0pt; border-left: none; border-right: none; border-top: solid #4BACC6 1.0pt; mso-border-bottom-themecolor: accent5; mso-border-top-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 123.0pt;&quot; valign=&quot;top&quot; width=&quot;164&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
When queue browsing is not applicable&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #4BACC6 1.0pt; border-left: none; border-right: none; border-top: solid #4BACC6 1.0pt; mso-border-bottom-themecolor: accent5; mso-border-top-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 91.7pt;&quot; valign=&quot;top&quot; width=&quot;122&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
Queue Browsing&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-left: none; border: solid #4BACC6 1.0pt; mso-border-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 91.7pt;&quot; valign=&quot;top&quot; width=&quot;122&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
Boolean&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-left: solid #4BACC6 1.0pt; border: none; mso-border-left-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 172.4pt;&quot; valign=&quot;top&quot; width=&quot;230&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;Number of messages in a queue&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border: none; padding: 0in 5.4pt 0in 5.4pt; width: 123.0pt;&quot; valign=&quot;top&quot; width=&quot;164&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
When the number of messages in the queue exceeds threshold&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border: none; padding: 0in 5.4pt 0in 5.4pt; width: 91.7pt;&quot; valign=&quot;top&quot; width=&quot;122&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
Queue Browsing&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-right: solid #4BACC6 1.0pt; border: none; mso-border-right-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 91.7pt;&quot; valign=&quot;top&quot; width=&quot;122&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
Counter&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-right: none; border: solid #4BACC6 1.0pt; mso-border-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 172.4pt;&quot; valign=&quot;top&quot; width=&quot;230&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;Message age&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #4BACC6 1.0pt; border-left: none; border-right: none; border-top: solid #4BACC6 1.0pt; mso-border-bottom-themecolor: accent5; mso-border-top-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 123.0pt;&quot; valign=&quot;top&quot; width=&quot;164&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
When the message age exceeds threshold&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #4BACC6 1.0pt; border-left: none; border-right: none; border-top: solid #4BACC6 1.0pt; mso-border-bottom-themecolor: accent5; mso-border-top-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 91.7pt;&quot; valign=&quot;top&quot; width=&quot;122&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
Queue Browsing&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-left: none; border: solid #4BACC6 1.0pt; mso-border-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 91.7pt;&quot; valign=&quot;top&quot; width=&quot;122&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
Number&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-left: solid #4BACC6 1.0pt; border: none; mso-border-left-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 172.4pt;&quot; valign=&quot;top&quot; width=&quot;230&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;Heap memory&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border: none; padding: 0in 5.4pt 0in 5.4pt; width: 123.0pt;&quot; valign=&quot;top&quot; width=&quot;164&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
When the heap memory usage exceeds threshold&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border: none; padding: 0in 5.4pt 0in 5.4pt; width: 91.7pt;&quot; valign=&quot;top&quot; width=&quot;122&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
JMX object java.lang:type=Memory&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-right: solid #4BACC6 1.0pt; border: none; mso-border-right-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 91.7pt;&quot; valign=&quot;top&quot; width=&quot;122&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
Number&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-right: none; border: solid #4BACC6 1.0pt; mso-border-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 172.4pt;&quot; valign=&quot;top&quot; width=&quot;230&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;System Exceptions/Errors&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #4BACC6 1.0pt; border-left: none; border-right: none; border-top: solid #4BACC6 1.0pt; mso-border-bottom-themecolor: accent5; mso-border-top-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 123.0pt;&quot; valign=&quot;top&quot; width=&quot;164&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
When error is raised&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #4BACC6 1.0pt; border-left: none; border-right: none; border-top: solid #4BACC6 1.0pt; mso-border-bottom-themecolor: accent5; mso-border-top-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 91.7pt;&quot; valign=&quot;top&quot; width=&quot;122&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
Exception Handling&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-left: none; border: solid #4BACC6 1.0pt; mso-border-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 91.7pt;&quot; valign=&quot;top&quot; width=&quot;122&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
List&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-left: solid #4BACC6 1.0pt; border: none; mso-border-left-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 172.4pt;&quot; valign=&quot;top&quot; width=&quot;230&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;Intrusions&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border: none; padding: 0in 5.4pt 0in 5.4pt; width: 123.0pt;&quot; valign=&quot;top&quot; width=&quot;164&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
When intrusion is detected&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border: none; padding: 0in 5.4pt 0in 5.4pt; width: 91.7pt;&quot; valign=&quot;top&quot; width=&quot;122&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
IDS tool&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-right: solid #4BACC6 1.0pt; border: none; mso-border-right-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 91.7pt;&quot; valign=&quot;top&quot; width=&quot;122&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
Intrusion&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-right: none; border: solid #4BACC6 1.0pt; mso-border-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 172.4pt;&quot; valign=&quot;top&quot; width=&quot;230&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;Deadlock&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #4BACC6 1.0pt; border-left: none; border-right: none; border-top: solid #4BACC6 1.0pt; mso-border-bottom-themecolor: accent5; mso-border-top-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 123.0pt;&quot; valign=&quot;top&quot; width=&quot;164&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
When deadlock is detected&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #4BACC6 1.0pt; border-left: none; border-right: none; border-top: solid #4BACC6 1.0pt; mso-border-bottom-themecolor: accent5; mso-border-top-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 91.7pt;&quot; valign=&quot;top&quot; width=&quot;122&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
JMX object java.lang:type=Threading&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-left: none; border: solid #4BACC6 1.0pt; mso-border-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt; width: 91.7pt;&quot; valign=&quot;top&quot; width=&quot;122&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
List&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
</content><link rel='replies' type='application/atom+xml' href='http://raikblog.blogspot.com/feeds/2333816049695359187/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://raikblog.blogspot.com/2012/11/monitoring-enterprise-java-application.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/2333816049695359187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/2333816049695359187'/><link rel='alternate' type='text/html' href='http://raikblog.blogspot.com/2012/11/monitoring-enterprise-java-application.html' title='Monitoring Enterprise Java Application'/><author><name>Haitham Raik</name><uri>http://www.blogger.com/profile/04008662680572575275</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7677652326497115767.post-4608271600754695622</id><published>2012-11-26T15:00:00.002+03:00</published><updated>2013-04-01T10:05:17.976+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Performance Monitoring and Tuning"/><title type='text'>Tools to Analyze the Performance of IBM WAS</title><content type='html'>&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;&lt;b&gt;&lt;a href=&quot;http://jmeter.apache.org/&quot;&gt;Apache JMeter&lt;/a&gt;&lt;/b&gt;: Stress/Performace Testing Tool&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;&lt;b&gt;&lt;a href=&quot;http://code.google.com/p/jmeter-plugins/&quot;&gt;Jmeter-plugins&lt;/a&gt;&lt;/b&gt;: Include many plugins; one of them is the stepping thread group plugin.&lt;/li&gt;
&lt;/ol&gt;
&lt;li&gt;&lt;b&gt;jstack&lt;/b&gt;: This is required to generate thread dumps on Sun/Oracle JVM&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;&lt;b&gt;jstackSeries&lt;/b&gt;: This is a batch that can be used to generate series of thread dump files.&lt;/li&gt;
&lt;/ol&gt;
&lt;li&gt;&lt;b&gt;jmap&lt;/b&gt;: This is required to generate heap dump on Sun/Oracle JVM&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;&lt;b&gt;jmapSeries&lt;/b&gt;: this is a batch that can be used to generate series of &amp;nbsp;heap dump files.&lt;/li&gt;
&lt;/ol&gt;
&lt;li&gt;&lt;b&gt;&lt;a href=&quot;http://www.ibm.com/developerworks/websphere/downloads/peformtuning.html&quot;&gt;IBM Performance Tuning Toolkit&lt;/a&gt;&lt;/b&gt;: This is required to generate heap/thread dumps on IBM JVM&lt;/li&gt;
&lt;li&gt;&lt;b&gt;IBM Thread and Monitor Dump Analyzer for Java (TMDA)&lt;/b&gt;: This is required to analyze thread dump files&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;a href=&quot;https://www.ibm.com/developerworks/mydeveloperworks/groups/service/html/communityview?communityUuid=f324412c-747c-42b9-8a70-a4d54e5f0e03&quot;&gt;IBM Database Connection Pool Analyzer for IBM Websphere Application Server&lt;/a&gt;&lt;/b&gt;: this is required to analyze trace.log files generated by IBM WAS&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;a href=&quot;http://www.ibm.com/developerworks/java/jdk/tools/memoryanalyzer/&quot;&gt;IBM Monitoring and&amp;nbsp;Diagnostic&amp;nbsp;Tools for Java - Memory Analyzer&lt;/a&gt;&lt;/b&gt;: This is required to analyze heap dump files&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;a href=&quot;https://www.ibm.com/developerworks/community/groups/service/html/communityview?communityUuid=22d56091-3a7b-4497-b36e-634b51838e11&quot;&gt;IBM Pattern Modeling and Analysis Tool for Java Garbage Collection (PMAT)&lt;/a&gt;&lt;/b&gt;: Analyze garbage collection behaviour&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;a href=&quot;http://docs.oracle.com/javase/6/docs/technotes/guides/management/jconsole.html&quot;&gt;JConsole&lt;/a&gt;&lt;/b&gt;: This is a visual JMX client that shows the CPU, Thread and Memory Usage for an Application:&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;&lt;b&gt;&lt;a href=&quot;http://lsd.luminis.nl/top-threads-plugin-for-jconsole/&quot;&gt;topthread&lt;/a&gt;&lt;/b&gt;: This is a JConsole plugin to show the top threads that uses the CPU.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;a href=&quot;http://hibernate-jcons.sourceforge.net/&quot;&gt;hibernate-jconsole&lt;/a&gt;&lt;/b&gt;:&amp;nbsp;This is a JConsole plugin to show the hibernate entities and queries with few statistics.&lt;/li&gt;
&lt;/ol&gt;
&lt;li&gt;&lt;b&gt;&lt;a href=&quot;http://code.google.com/p/log4jdbc/&quot;&gt;log4jdbc&lt;/a&gt;&lt;/b&gt;: is a JDBC driver that can log SQL and/or JDBC calls (and optionally SQL timing information)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;IBM Websphere Application Server - PMI&lt;/b&gt;:&amp;nbsp;&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 13px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;PMI&amp;nbsp;is the core monitoring infrastructure for WebSphere Application Server and WebSphere family products like Portal, Commerce, and so on. The performance data provided by WebSphere PMI helps to monitor and tune&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;the application server performance&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;a href=&quot;http://www.codemarvels.com/tcploadbalancer/&quot;&gt;&lt;b&gt;TCP Load Balancer In Java&lt;/b&gt;&lt;/a&gt;:&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: white; line-height: 21px;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;is a simple to use load balancer written in Java, which can be used&amp;nbsp; for load balancing and fail-over clustering of TCP based services like HTTP, FTP, XMPP etc&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
</content><link rel='replies' type='application/atom+xml' href='http://raikblog.blogspot.com/feeds/4608271600754695622/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://raikblog.blogspot.com/2012/11/tools-to-analyze-performance-of-ibm-was.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/4608271600754695622'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/4608271600754695622'/><link rel='alternate' type='text/html' href='http://raikblog.blogspot.com/2012/11/tools-to-analyze-performance-of-ibm-was.html' title='Tools to Analyze the Performance of IBM WAS'/><author><name>Haitham Raik</name><uri>http://www.blogger.com/profile/04008662680572575275</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7677652326497115767.post-5418588479052616466</id><published>2012-11-06T15:50:00.004+03:00</published><updated>2013-04-01T10:05:17.979+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Performance Monitoring and Tuning"/><title type='text'>Analyzing IBM Websphere Application Server Performance Issues - Files and Tools</title><content type='html'>&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoNormalTable&quot; style=&quot;border-collapse: collapse; margin-left: -17.1pt; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-table-layout-alt: fixed; mso-yfti-tbllook: 1184;&quot;&gt;
 &lt;tbody&gt;
&lt;tr style=&quot;height: 43.5pt; mso-yfti-firstrow: yes; mso-yfti-irow: 0;&quot;&gt;
  &lt;td style=&quot;border: solid windowtext 1.0pt; height: 43.5pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 78.2pt;&quot; width=&quot;104&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #1f497d; font-size: 10.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-hansi-font-family: Calibri;&quot;&gt;Performance Issue&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-left: none; border: solid windowtext 1.0pt; height: 43.5pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 101.8pt;&quot; width=&quot;136&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #1f497d; font-size: 10.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-hansi-font-family: Calibri;&quot;&gt;Required Files for Analysis&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-left: none; border: solid windowtext 1.0pt; height: 43.5pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 99.0pt;&quot; width=&quot;132&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #1f497d; font-size: 10.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-hansi-font-family: Calibri;&quot;&gt;How to Generate File using Sun
  JDK&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-left: none; border: solid windowtext 1.0pt; height: 43.5pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 99.0pt;&quot; width=&quot;132&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #1f497d; font-size: 10.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-hansi-font-family: Calibri;&quot;&gt;How to Generate File using IBM
  JDK&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-left: none; border: solid windowtext 1.0pt; height: 43.5pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #1f497d; font-size: 10.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-hansi-font-family: Calibri;&quot;&gt;Analysis Tool&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 30.75pt; mso-yfti-irow: 1;&quot;&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;background: #F79646; border-left: solid windowtext 1.0pt; border: none; height: 30.75pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 78.2pt;&quot; width=&quot;104&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;color: white; font-size: 10.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-hansi-font-family: Calibri;&quot;&gt;Synchronized Blocking&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;background: #FCD5B4; border: none; height: 30.75pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 101.8pt;&quot; width=&quot;136&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-size: 10pt;&quot;&gt;Thread Dump (javacore files or
  native_stdout.log)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: #FCD5B4; border: none; height: 30.75pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 99.0pt;&quot; width=&quot;132&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-size: 10pt;&quot;&gt;jstack jstack &lt;pid&gt; &amp;gt;&amp;gt; threaddumps.log&lt;o:p&gt;&lt;/o:p&gt;&lt;/pid&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: #FCD5B4; border: none; height: 30.75pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 99.0pt;&quot; width=&quot;132&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-size: 10pt;&quot;&gt;Using IBM Performance Tuning
  Toolkit&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: #FCD5B4; border-right: solid windowtext 1.0pt; border: none; height: 30.75pt; mso-border-right-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-size: 10pt;&quot;&gt;IBM Thread and Monitor Dump
  Analyzer for Java (TMDA)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 30.0pt; mso-yfti-irow: 2;&quot;&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;background: #8064A2; border-left: solid windowtext 1.0pt; border: none; height: 30.0pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 78.2pt;&quot; width=&quot;104&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;color: white; font-size: 10.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-hansi-font-family: Calibri;&quot;&gt;DeadLock&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;background: #CCC0DA; height: 30.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 101.8pt;&quot; width=&quot;136&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-size: 10pt;&quot;&gt;Thread Dump (javacore files or
  native_stdout.log)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: #CCC0DA; height: 30.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 99.0pt;&quot; width=&quot;132&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-size: 10pt;&quot;&gt;jstack jstack &lt;pid&gt; &amp;gt;&amp;gt;
  threaddumps.log&lt;o:p&gt;&lt;/o:p&gt;&lt;/pid&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: #CCC0DA; height: 30.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 99.0pt;&quot; width=&quot;132&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-size: 10pt;&quot;&gt;Using IBM Performance Tuning
  Toolkit&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: #CCC0DA; border-right: solid windowtext 1.0pt; border: none; height: 30.0pt; mso-border-right-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-size: 10pt;&quot;&gt;IBM Thread and Monitor Dump
  Analyzer for Java (TMDA)&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 45.0pt; mso-yfti-irow: 3;&quot;&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;background: #9BBB59; border-left: solid windowtext 1.0pt; border: none; height: 45.0pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 78.2pt;&quot; width=&quot;104&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;color: white; font-size: 10.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-hansi-font-family: Calibri;&quot;&gt;High CPU Usage&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;background: #D8E4BC; height: 45.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 101.8pt;&quot; width=&quot;136&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-size: 10pt;&quot;&gt;Thread Dump (javacore files or
  native_stdout.log)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: #D8E4BC; height: 45.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 99.0pt;&quot; width=&quot;132&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-size: 10pt;&quot;&gt;jstack jstack &lt;pid&gt; &amp;gt;&amp;gt;
  threaddumps.log&lt;o:p&gt;&lt;/o:p&gt;&lt;/pid&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: #D8E4BC; height: 45.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 99.0pt;&quot; width=&quot;132&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-size: 10pt;&quot;&gt;Using IBM Performance Tuning
  Toolkit&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: #D8E4BC; border-right: solid windowtext 1.0pt; border: none; height: 45.0pt; mso-border-right-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-size: 10pt;&quot;&gt;JConsole plugin topthreads&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 45.0pt; mso-yfti-irow: 4;&quot;&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;background: #C0504D; border-left: solid windowtext 1.0pt; border: none; height: 45.0pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 78.2pt;&quot; width=&quot;104&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;color: white; font-size: 10.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-hansi-font-family: Calibri;&quot;&gt;Connection Leak&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;background: #E6B8B7; height: 45.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 101.8pt;&quot; width=&quot;136&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-size: 10pt;&quot;&gt;trace.log&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: #E6B8B7; height: 45.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 99.0pt;&quot; width=&quot;132&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-size: 10pt;&quot;&gt;Enable the tracing using IBM
  Performance Tuning Toolkit&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: #E6B8B7; height: 45.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 99.0pt;&quot; width=&quot;132&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-size: 10pt;&quot;&gt;Using IBM Performance Tuning
  Toolkit&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: #E6B8B7; border-right: solid windowtext 1.0pt; border: none; height: 45.0pt; mso-border-right-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-size: 10pt;&quot;&gt;IBM Database Connection Pool
  Analyzer for IBM Websphere Application Server&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 45.0pt; mso-yfti-irow: 5;&quot;&gt;
  &lt;td nowrap=&quot;&quot; rowspan=&quot;3&quot; style=&quot;background: #4F81BD; border-bottom: solid windowtext 1.0pt; border-left: solid windowtext 1.0pt; border-right: none; border-top: none; height: 45.0pt; mso-border-bottom-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 78.2pt;&quot; width=&quot;104&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;color: white; font-size: 10.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-hansi-font-family: Calibri;&quot;&gt;Memory Leak&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;background: #B8CCE4; height: 45.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 101.8pt;&quot; width=&quot;136&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-size: 10pt;&quot;&gt;Heap Dump (.phd)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: #B8CCE4; height: 45.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 99.0pt;&quot; width=&quot;132&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-size: 10pt;&quot;&gt;jmap
  -dump:format=b,file=&lt;file-name&gt; &lt;processid&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/processid&gt;&lt;/file-name&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: #B8CCE4; height: 45.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 99.0pt;&quot; width=&quot;132&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-size: 10pt;&quot;&gt;Using IBM Performance Tuning
  Toolkit or using wsadmin $AdminControl&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: #B8CCE4; border-right: solid windowtext 1.0pt; border: none; height: 45.0pt; mso-border-right-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-size: 10pt;&quot;&gt;IBM Monitoring and Diagnostic Tools
  for Java™ - Memory Analyzer&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 45.0pt; mso-yfti-irow: 6;&quot;&gt;
  &lt;td nowrap=&quot;&quot; rowspan=&quot;2&quot; style=&quot;background: #DCE6F1; border-bottom: solid windowtext 1.0pt; border: none; height: 45.0pt; mso-border-bottom-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 101.8pt;&quot; width=&quot;136&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-size: 10pt;&quot;&gt;(Garbage Collection
  Verbose)native_stdout.log&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td rowspan=&quot;2&quot; style=&quot;background: #DCE6F1; border-bottom: solid windowtext 1.0pt; border: none; height: 45.0pt; mso-border-bottom-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 99.0pt;&quot; width=&quot;132&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-size: 10pt;&quot;&gt;Enable Verbose garbage collection
  on Application servers &amp;gt; &lt;i&gt;serverName&lt;/i&gt; &amp;gt; Process definition &amp;gt;
  Java Virtual Machine&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td rowspan=&quot;2&quot; style=&quot;background: #DCE6F1; border-bottom: solid windowtext 1.0pt; border: none; height: 45.0pt; mso-border-bottom-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 99.0pt;&quot; width=&quot;132&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-size: 10pt;&quot;&gt;Enable Verbose garbage collection
  using Performance Tuning Toolkit&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: #DCE6F1; border-right: solid windowtext 1.0pt; border: none; height: 45.0pt; mso-border-right-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-size: 10pt;&quot;&gt;IBM Monitoring and Diagnostic Tools
  for Java™ - Garbage Collection and Memory Visualizer&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 45.0pt; mso-yfti-irow: 7; mso-yfti-lastrow: yes;&quot;&gt;
  &lt;td style=&quot;background: #DCE6F1; border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 45.0pt; mso-border-bottom-alt: solid windowtext .5pt; mso-border-right-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot; width=&quot;300&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-size: 10pt;&quot;&gt;IBM Pattern Modeling and Analysis
  Tool for Java Garbage Collector (PMAT)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
</content><link rel='replies' type='application/atom+xml' href='http://raikblog.blogspot.com/feeds/5418588479052616466/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://raikblog.blogspot.com/2012/11/performance-issue-required-files-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/5418588479052616466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/5418588479052616466'/><link rel='alternate' type='text/html' href='http://raikblog.blogspot.com/2012/11/performance-issue-required-files-for.html' title='Analyzing IBM Websphere Application Server Performance Issues - Files and Tools'/><author><name>Haitham Raik</name><uri>http://www.blogger.com/profile/04008662680572575275</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7677652326497115767.post-6296321954260753760</id><published>2012-10-18T10:25:00.001+03:00</published><updated>2013-04-01T10:05:17.980+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Performance Monitoring and Tuning"/><title type='text'>IBM Support Assistant Agent/Agent Manager v4.1 Installation Files</title><content type='html'>IBM Support Assistant Agent/Agent Manager v4.1 Installation Files&lt;br /&gt;
&lt;a href=&quot;https://www14.software.ibm.com/webapp/iwm/web/reg/download.do?source=isa&amp;amp;S_PKG=v41-amgr&amp;amp;lang=en_US&amp;amp;cp=UTF-8&amp;amp;dlmethod=http&quot;&gt;IBM Support Assistant 2012/10/18 01:24:46&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://raikblog.blogspot.com/feeds/6296321954260753760/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://raikblog.blogspot.com/2012/10/ibm-support-assistant-agentagent.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/6296321954260753760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/6296321954260753760'/><link rel='alternate' type='text/html' href='http://raikblog.blogspot.com/2012/10/ibm-support-assistant-agentagent.html' title='IBM Support Assistant Agent/Agent Manager v4.1 Installation Files'/><author><name>Haitham Raik</name><uri>http://www.blogger.com/profile/04008662680572575275</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7677652326497115767.post-826504331521768119</id><published>2012-10-11T16:54:00.001+03:00</published><updated>2013-04-01T10:29:45.283+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Concurrency"/><category scheme="http://www.blogger.com/atom/ns#" term="Performance"/><title type='text'>Java Concurrency Cheat Sheet from DZone Refcardz - Free, professional tutorial guides for developers</title><content type='html'>&lt;a href=&quot;http://refcardz.dzone.com/refcardz/core-java-concurrency&quot;&gt;Java Concurrency Cheat Sheet from DZone Refcardz - Free, professional tutorial guides for developers&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://raikblog.blogspot.com/feeds/826504331521768119/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://raikblog.blogspot.com/2012/10/java-concurrency-cheat-sheet-from-dzone.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/826504331521768119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/826504331521768119'/><link rel='alternate' type='text/html' href='http://raikblog.blogspot.com/2012/10/java-concurrency-cheat-sheet-from-dzone.html' title='Java Concurrency Cheat Sheet from DZone Refcardz - Free, professional tutorial guides for developers'/><author><name>Haitham Raik</name><uri>http://www.blogger.com/profile/04008662680572575275</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7677652326497115767.post-2825422903423755282</id><published>2012-10-11T16:53:00.001+03:00</published><updated>2013-04-01T10:29:57.640+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Design"/><title type='text'>java.dzone.com/sites/all/files/SOA_Service_Design_Cheat_Sheet.pdf</title><content type='html'>&lt;span style=&quot;background-color: white; color: #222222; font-family: Helvetica, arial, verdana; font-size: 15px; line-height: 22px;&quot;&gt;This simple cheat sheet contains all the key goals, principals and design patterns that you should be aware of when designing SOA services and contains helpful links to places where you can find more in-depth information on each topic&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #222222; font-family: Helvetica, arial, verdana; font-size: 15px; line-height: 22px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt; &lt;a href=&quot;http://java.dzone.com/sites/all/files/SOA_Service_Design_Cheat_Sheet.pdf&quot;&gt;java.dzone.com/sites/all/files/SOA_Service_Design_Cheat_Sheet.pdf&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://raikblog.blogspot.com/feeds/2825422903423755282/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://raikblog.blogspot.com/2012/10/javadzonecomsitesallfilessoaservicedesi.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/2825422903423755282'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/2825422903423755282'/><link rel='alternate' type='text/html' href='http://raikblog.blogspot.com/2012/10/javadzonecomsitesallfilessoaservicedesi.html' title='java.dzone.com/sites/all/files/SOA_Service_Design_Cheat_Sheet.pdf'/><author><name>Haitham Raik</name><uri>http://www.blogger.com/profile/04008662680572575275</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7677652326497115767.post-8125738286241731773</id><published>2012-09-18T12:43:00.001+03:00</published><updated>2013-04-01T10:29:29.259+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Security"/><title type='text'>IBM WAS - Web container custom properties - HTTPOnly flag</title><content type='html'>&lt;a href=&quot;http://pic.dhe.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=%2Fcom.ibm.websphere.express.doc%2Finfo%2Fexp%2Fae%2Frweb_custom_props.html&quot;&gt;WebSphere Application Server Version 7.0&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h1 class=&quot;topictitle1&quot; style=&quot;font-family: Arial, sans-serif; font-size: 1.5em; margin-bottom: 0.5em; margin-top: 0pc; word-spacing: 0.1em;&quot;&gt;
Web container custom properties - HTTPOnly flag&lt;/h1&gt;
</content><link rel='replies' type='application/atom+xml' href='http://raikblog.blogspot.com/feeds/8125738286241731773/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://raikblog.blogspot.com/2012/09/websphere-application-server-version-70.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/8125738286241731773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/8125738286241731773'/><link rel='alternate' type='text/html' href='http://raikblog.blogspot.com/2012/09/websphere-application-server-version-70.html' title='IBM WAS - Web container custom properties - HTTPOnly flag'/><author><name>Haitham Raik</name><uri>http://www.blogger.com/profile/04008662680572575275</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7677652326497115767.post-9028667093988242943</id><published>2012-07-02T12:57:00.001+03:00</published><updated>2013-04-01T10:30:08.001+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Security"/><title type='text'>Harpoon Technologies: How to avoid SQL injection in Hibernate (A Hiberna...</title><content type='html'>&lt;a href=&quot;http://blog.harpoontech.com/2008/10/how-to-avoid-sql-injection-in-hibernate.html?spref=bl&quot;&gt;Harpoon Technologies: How to avoid SQL injection in Hibernate (A Hiberna...&lt;/a&gt;: Somewhere along the line java developers came to believe that Hibernate protects you from SQL injection.  I&#39;m not sure where they came to be...</content><link rel='replies' type='application/atom+xml' href='http://raikblog.blogspot.com/feeds/9028667093988242943/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://raikblog.blogspot.com/2012/07/harpoon-technologies-how-to-avoid-sql.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/9028667093988242943'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/9028667093988242943'/><link rel='alternate' type='text/html' href='http://raikblog.blogspot.com/2012/07/harpoon-technologies-how-to-avoid-sql.html' title='Harpoon Technologies: How to avoid SQL injection in Hibernate (A Hiberna...'/><author><name>Haitham Raik</name><uri>http://www.blogger.com/profile/04008662680572575275</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7677652326497115767.post-7788076706272238198</id><published>2012-06-28T13:42:00.001+03:00</published><updated>2013-04-01T10:30:19.293+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java Tricks"/><title type='text'>Bye, Bye, 5 * 60 * 1000 //Five Minutes, Bye, Bye - Java Code Geeks</title><content type='html'>&lt;a href=&quot;http://www.javacodegeeks.com/2012/06/bye-bye-5-60-1000-five-minutes-bye-bye.html?utm_source=feedburner&amp;amp;utm_medium=feed&amp;amp;utm_campaign=Feed%3A+JavaCodeGeeks+%28Java+Code+Geeks%29&amp;amp;utm_content=FaceBook&quot;&gt;Bye, Bye, 5 * 60 * 1000 //Five Minutes, Bye, Bye - Java Code Geeks&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://raikblog.blogspot.com/feeds/7788076706272238198/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://raikblog.blogspot.com/2012/06/bye-bye-5-60-1000-five-minutes-bye-bye.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/7788076706272238198'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7677652326497115767/posts/default/7788076706272238198'/><link rel='alternate' type='text/html' href='http://raikblog.blogspot.com/2012/06/bye-bye-5-60-1000-five-minutes-bye-bye.html' title='Bye, Bye, 5 * 60 * 1000 //Five Minutes, Bye, Bye - Java Code Geeks'/><author><name>Haitham Raik</name><uri>http://www.blogger.com/profile/04008662680572575275</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>