<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Dependencies | Xuhang Gu</title>
    <link>https://xgu5.github.io/tag/dependencies.html</link>
      <atom:link href="https://xgu5.github.io/tag/dependencies/index.xml" rel="self" type="application/rss+xml" />
    <description>Dependencies</description>
    <generator>Wowchemy (https://wowchemy.com)</generator><language>en-us</language><lastBuildDate>Mon, 26 Feb 2024 00:00:00 +0000</lastBuildDate>
    <image>
      <url>https://xgu5.github.io/media/icon_hu_a4f3f82829f42164.png</url>
      <title>Dependencies</title>
      <link>https://xgu5.github.io/tag/dependencies.html</link>
    </image>
    
    <item>
      <title>Execution Dependencies in Microservices</title>
      <link>https://xgu5.github.io/project/execution_dependencies.html</link>
      <pubDate>Mon, 26 Feb 2024 00:00:00 +0000</pubDate>
      <guid>https://xgu5.github.io/project/execution_dependencies.html</guid>
      <description>&lt;div class=&#34;container&#34;&gt;
 &lt;div class=&#34;row justify-content-center align-items-center&#34;&gt;
 &lt;div class=&#34;col-md-10 text-center&#34;&gt;
&lt;img src=&#34;../../img/Dependencies/Blocking_Effects.png&#34; alt=&#34;Cross path blocking effects in microservices&#34; class=&#34;m-0 w-100 img-fluid rounded&#34;/&gt;
&lt;h4 class=&#34;mt-1 mb-3&#34;&gt;Figure 1. Blocking effects among different execution paths. Resource saturation in a single service can cascade across multiple execution paths, causing severe performance damage.&lt;/h4&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p class=&#34;text-start&#34;&gt;
Microservice applications decompose monolithic business logic into loosely coupled microservices, introducing complex inter-service dependencies. This architectural shift poses a significant challenge to maintaining system-wide performance stability: resource contention in a single microservice can cascade, causing blocking effects cross different execution paths. As a result, &lt;b&gt;performance degradation from &lt;a href=&#34;../../project/transition_bottlenecks.html&#34;&gt;transient bottlenecks&lt;/a&gt;  in a microservice is not limited to its own execution path but instead propagates across multiple execution paths&lt;/b&gt;, leading wide-spread performance degradation.
&lt;/p&gt;
 &lt;div class=&#34;row justify-content-center align-items-center&#34;&gt;
  &lt;div class=&#34;col-md-12 text-center&#34;&gt;
    &lt;img src=&#34;../../img/Dependencies/CTQO.png&#34; alt=&#34;Cross-service queue blocking&#34; class=&#34;m-2 img-fluid rounded&#34;/&gt;
    &lt;h4 class=&#34;mt-1 mb-3&#34;&gt;Figure 2.  Conceptual illustration of cross-service queue blocking.&lt;/h4&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p class=&#34;text-start&#34;&gt;
Execution blocking occurs when resource saturation happens directly on a shared upstream microservice. In such a scenario, the shared upstream microservice becomes a bottleneck, blocking the execution of all dependent downstream microservices across different execution paths. However, cross-service queue blocking is more challenging to detect and mitigate because the resource saturation and the blocking effect occur on different microservices. In such a scenario, resource saturation can happen on any downstream microservice (DM) in one execution path and block the execution of other
execution paths.
&lt;/p&gt;
&lt;/div&gt;</description>
    </item>
    
  </channel>
</rss>
