<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Sushant Parab</title>
    <description>The latest articles on DEV Community by Sushant Parab (@sushantparab).</description>
    <link>https://dev.to/sushantparab</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1278764%2F28516bbb-2990-4f08-a311-18fe2aed1e76.png</url>
      <title>DEV Community: Sushant Parab</title>
      <link>https://dev.to/sushantparab</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sushantparab"/>
    <language>en</language>
    <item>
      <title>💻🔗ESB Simplified: Making Application Integration Easy and Efficient🔗💻</title>
      <dc:creator>Sushant Parab</dc:creator>
      <pubDate>Tue, 26 Nov 2024 14:56:18 +0000</pubDate>
      <link>https://dev.to/sushantparab/esb-simplified-making-application-integration-easy-and-efficient-2p77</link>
      <guid>https://dev.to/sushantparab/esb-simplified-making-application-integration-easy-and-efficient-2p77</guid>
      <description>&lt;p&gt;In my previous post we touched &amp;amp; tried to understand how different applications within an enterprise communicate with each other. If you have not read it, I suggest you do it first &amp;amp; here is the link to it: &lt;a href="https://dev.to/sushantparab/unlocking-inter-application-communication-a-dive-into-enterprise-application-integration-eai-30lp"&gt;Unlocking Inter-Application Communication: A Dive into Enterprise Application Integration (EAI)&lt;/a&gt;. In this article we’ll be looking into one of the design patterns mentioned in my earlier article: ESB (Enterprise Service Bus).&lt;/p&gt;

&lt;h2&gt;
  
  
  About Enterprise Service Bus (ESB):
&lt;/h2&gt;

&lt;p&gt;The enterprise service bus (ESB) is a software architectural pattern that supports real-time data exchange between disparate applications. Applications pass relevant data to the ESB, and it converts and forwards the data to other applications that need it. Large organizations have multiple applications that perform various functions using diverse data models, protocols, and security restrictions. The ESB makes application integration easier by performing operations like data transformation, protocol conversion, message routing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6mg30hfwdy4shbfeyu90.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6mg30hfwdy4shbfeyu90.png" alt="ESB Explained" width="782" height="663"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To simplify this, consider ESB as a highway connecting multiple different places. Consider a newly developed society which requires connectivity to a marketplace, this new society only needs to figure out a pay to connect itself to this highway which is already connected to the marketplace. This simplifies the process, saves cost &amp;amp; time. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdwrz96qds018nta887my.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdwrz96qds018nta887my.png" alt="ESB explanation using an example" width="800" height="753"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hope that you now are having a basic idea of what is ESB, now let’s understand how it works.&lt;/p&gt;

&lt;h2&gt;
  
  
  How does ESB work?
&lt;/h2&gt;

&lt;p&gt;ESB works on Service-Oriented Architecture (SOA) principles (Note: We’ll be looking into SOA in my next article). ESB provides a centralized communication channels for desperate applications to connect &amp;amp; communicate/interact with each other. Following are the key components in an ESB architecture:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Bus&lt;/strong&gt;: It’s a core ESB component used for exchanging messages between endpoints/end-systems. It uses a set of rules/policies for routing the messages/data to intended receivers. All the business rules, orchestration logics, data conversions &amp;amp; transformations happen over this bus before the message is routed to the respective ens-system. It uses various communication protocols like HTTP, FTP or messaging services like JMS to communicate with respective endpoints/end-systems. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Endpoints&lt;/strong&gt;: Endpoints are the entry &amp;amp; exit points of ESB with their own unique address/identifier. An endpoint can be implemented using various technologies like a web service or a messaging service or an FTP server &amp;amp; can process different type of messages as well like XML, JSON and so on. This flexibility of endpoint implementation allows ESB to interact with a wide range of systems &amp;amp; applications.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Adapters&lt;/strong&gt;: Adapters help in translating messages between different formats &amp;amp; protocols helping the recipient system in properly consuming the data/message. Adapters can also provide features like logging &amp;amp; monitoring along with gracefully handling the errors occurring in the process.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Benefits of an ESB:
&lt;/h2&gt;

&lt;p&gt;Now let’s check the benefits of implementing an ESB architecture for an organization with multiple applications / end systems who want to communicate with each other, but in simple terms: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Standardized Communication&lt;/strong&gt;: Instead of every system in a company needing to "speak" a different language to communicate with each other, an ESB acts like a translator. It ensures all systems can easily understand each other, making communication smooth and error-free.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cost Efficiency&lt;/strong&gt;: Imagine having one big road that everyone can use instead of building separate roads for each group. This shared "highway" reduces costs because you don’t need extra equipment or resources for individual connections.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Specialized Management&lt;/strong&gt;: With one team in charge of managing this "highway," there’s no confusion or overlap. This team focuses only on keeping the ESB running well, which makes it easier to maintain and fix issues.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Protocol and Data Transformation&lt;/strong&gt;: Different systems in a company might use different ways to send information or formats for their data. The ESB takes care of converting these differences, so everything works together seamlessly, like changing currencies during international trade.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Support for Integration Scenarios&lt;/strong&gt;: The ESB doesn’t just connect systems; it also helps combine data and automate processes. Think of it like a central hub that organizes and directs traffic to ensure everything runs efficiently in a business.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Developer Productivity&lt;/strong&gt;: When developers don’t have to spend time figuring out how to connect systems, they can focus on building better software and improving existing tools. It’s like giving a chef more time to cook instead of setting up the kitchen every day.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reusability&lt;/strong&gt;: Once a connection is set up, it can be reused for other projects. It’s like building one sturdy bridge that everyone can use instead of constructing a new one each time someone needs to cross the river.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Limitation of ESB:
&lt;/h2&gt;

&lt;p&gt;While we are on the topic of pros &amp;amp; cons, let’s discuss the cons of ESB to have complete understanding. Listed below are the limitation of ESB:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Complexity&lt;/strong&gt;: Imagine a massive highway system that needs specialized engineers to maintain it. Every time a new road (system) is added, only these engineers can do it, and the process is slow. Plus, if you’ve signed a deal with one specific highway builder (vendor), switching to another builder is almost impossible. Similarly, managing an ESB is like this highway system. It’s complex and requires highly trained specialists to add new connections or fix issues. Teams must wait for the central ESB team to handle new integrations. And if you’ve chosen a specific ESB provider, switching to another one later limits your options, just like being stuck with one builder for all roads.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scalability&lt;/strong&gt;: Picture a highway getting crowded as more cars (data) and roads (connections) are added. With every addition, traffic slows down. Building extra lanes or keeping the highway always operational becomes very expensive. Similarly, with ESB as more systems connect to the ESB, the added layers of processing slow things down, making it a bottleneck. Expanding or ensuring the ESB can handle constant communication without downtime gets costlier as usage grows.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Upgrading Difficulty&lt;/strong&gt;: Improving or fixing one road on the highway might unintentionally cause problems for other connected roads. So, before making any changes, every road needs to be checked, which takes a lot of time and coordination. Similarly, enhancing or updating the ESB can accidentally disrupt other systems connected to it. This requires extensive testing before making changes, slowing down upgrades. Since upgrades involve many teams and funding approvals, even minor improvements can become a lengthy process.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Alternatives to ESB:
&lt;/h2&gt;

&lt;p&gt;While ESB provides a good solution for integrating applications within an enterprise, but it has its own limitation &amp;amp; there are other solutions that can be used as alternatives for doing the integration task. Microservices architecture or Event-driven architecture are also good &amp;amp; effective alternatives for ESB. I’ll write about these topics as well in upcoming posts.&lt;/p&gt;

&lt;h6&gt;
  
  
  Resources:
&lt;/h6&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://aws.amazon.com/what-is/enterprise-service-bus/" rel="noopener noreferrer"&gt;What is ESB? : amazon.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.ibm.com/topics/esb" rel="noopener noreferrer"&gt;What is enterprise service bus (ESB) : ibm.com&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;I hope that this post has helped you in understanding another concept called ESB or Enterprise Service Bus from the world of integrations. If you learned something new today, then share it with your network &amp;amp; let someone get help from it.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>esb</category>
      <category>applicationintegration</category>
      <category>enterpriseservicebus</category>
      <category>techexplained</category>
    </item>
    <item>
      <title>💻🔗 Unlocking Inter-Application Communication: A Dive into Enterprise Application Integration (EAI) 🚀</title>
      <dc:creator>Sushant Parab</dc:creator>
      <pubDate>Tue, 22 Oct 2024 04:27:32 +0000</pubDate>
      <link>https://dev.to/sushantparab/unlocking-inter-application-communication-a-dive-into-enterprise-application-integration-eai-30lp</link>
      <guid>https://dev.to/sushantparab/unlocking-inter-application-communication-a-dive-into-enterprise-application-integration-eai-30lp</guid>
      <description>&lt;p&gt;Dose this question intrigue you? Do you want to know how communication/data transfer happens between different applications of an enterprise? If so, read through this post &amp;amp; let’s try to understand the same thing. &lt;br&gt;
In today's enterprise infrastructure, system and application integration is becoming increasingly important. The important question is, how will this happen or what will help in achieving this goal of inter-application communication? This is where Enterprise Application Integration or EAI comes into picture. Now, what is EAI you ask, let’s try to understand about it in this article.&lt;br&gt;
What is Enterprise Application Integration (EAI)?&lt;br&gt;
EAI is a continuous process of translation of data &amp;amp; commands between two incompatible systems. It is an approach of providing interoperability between multiple (incompatible) systems within an enterprise. &lt;br&gt;
Putting this in simple terms, consider EAI as a person who knows many different languages (language translator). In a situation where, there are two or more people from separate places knowing different languages who want to communicate to each other can take help from this language translator to bridge the communication gap between themselves. &lt;br&gt;
EAI design approach can be of point-to-point type, or it can be of a message broker type, or it can be a service bus type. Depending on the organization/enterprise need, application integration approach can be decided. &lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Types of EAI:&lt;/strong&gt;
&lt;/h4&gt;

&lt;h6&gt;
  
  
  1. Point-to Point:
&lt;/h6&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F01k7r5fxgwhxvbagpfo4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F01k7r5fxgwhxvbagpfo4.png" alt="EAI - Point to point integration pattern" width="692" height="772"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;This is the simplest way to design the integration to achieve the goal of interoperability. &lt;/li&gt;
&lt;li&gt;This can be a good approach when the enterprise is having a smaller number of applications to integrate &amp;amp; communicate with each other.&lt;/li&gt;
&lt;li&gt;As the name says, this approach will design a point-to-point communication link between each available application. &lt;/li&gt;
&lt;li&gt;The pros for this approach are that it is easy &amp;amp; can be delivered quickly as only a common connection string needs to be established from application A to application B. If there is another Application C that wants to connect to application B, then a new communication string needs to be developed. &lt;/li&gt;
&lt;li&gt;This starts becoming difficult when the applications available in an enterprise is more, as the maintenance of this will take more time &amp;amp; also the developer working on maintenance part must know all the details about each involved end system. &lt;/li&gt;
&lt;li&gt;This approach is only suitable for enterprises with small number of end system with low to zero scope of change.&lt;/li&gt;
&lt;li&gt;As explained in above figure, the number of interfaces start growing fast as we start adding a greater number of applications. This will add development cost with every added system/application to the enterprise. &lt;/li&gt;
&lt;li&gt;Another trade-off with this design patter is the complexity that will be added to the complete enterprise applications architecture will also grow &amp;amp; at some point the maintenance of the same will become a tedious job.&lt;/li&gt;
&lt;/ul&gt;

&lt;h6&gt;
  
  
  2. Message broker:
&lt;/h6&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1xgebd6wt9ounkx5ifu1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1xgebd6wt9ounkx5ifu1.png" alt="EAI - Message broker integration pattern" width="782" height="783"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In this approach, there is a message broker/communication facilitator application which sits in between all the applications that are to be connected to each other. &lt;/li&gt;
&lt;li&gt;This message broker is responsible for all the required message translations/transformations, application of business orchestrations if any or any other policy applications to the transactions flowing through.&lt;/li&gt;
&lt;li&gt;This adds the factor of system scalability, as the newly joining system just must take care of connecting their system to this message broker &amp;amp; the rest is already established. &lt;/li&gt;
&lt;li&gt;Also, there is a capability of adding logging over the transaction flow.&lt;/li&gt;
&lt;li&gt;The drawbacks of this approach could be listed as the message broker can become a single point of failure for the complete network &amp;amp; also it can act as a bottleneck for the entire communication channel during high load periods. Apart from this there is a constant need of an expert to work on the message broker development &amp;amp; maintenance. &lt;/li&gt;
&lt;li&gt;This design pattern overcomes the shortcomings of previous design pattern. As in the number of interfaces will always stay equal to the number of applications. This makes the maintenance job easy. &lt;/li&gt;
&lt;li&gt;At the same time, trade-off for this pattern will be that it may act bottleneck during the time of high network traffic &amp;amp; there may be chances of message loss as well.&lt;/li&gt;
&lt;li&gt;Another point to consider is that will it adds a single point of failure for the complete application network. If the message broker goes down for some reason none of the application in that enterprise will not be able to communicate to each other. &lt;/li&gt;
&lt;/ul&gt;

&lt;h6&gt;
  
  
  3. Enterprise Service Bus (Event Bus):
&lt;/h6&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feb6wvvqcmghek10hp4n6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feb6wvvqcmghek10hp4n6.png" alt="EAI - ESB integration pattern" width="782" height="663"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;This is the easiest &amp;amp; most scalable approach to implement application integration throughout the enterprise.&lt;/li&gt;
&lt;li&gt;In this approach, a universal data communication channel is created which makes the data available to all the applications connected to this event bus at all times. &lt;/li&gt;
&lt;li&gt;This makes connectivity easy for the new systems in an enterprise, as the data is already available, they only must select the appropriate section out of it.&lt;/li&gt;
&lt;li&gt;This approach is most suitable to enterprises which are in constant growing phase as the scope of applications is not predefined &amp;amp; new systems may get added to the enterprise on the go.&lt;/li&gt;
&lt;li&gt;The inter-application communication becomes easy here, but the drawback is that of availability of an expert on the event bus coding.&lt;/li&gt;
&lt;li&gt;As this patter is the newest offering, it tries to overcome the drawbacks of previously mentioned design patterns, but a system cannot be perfect all the time. This system also adds a single point of failure in case of ESB service being unavailable at a point of time again disrupting the complete application network.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are multiple tools available in market that help in achieving this interoperability goal &amp;amp; each of them has their own pros &amp;amp; cons. Post research &amp;amp; requirement analysis of the enterprise needs an EAI provisioning solution can be finalized.&lt;/p&gt;

&lt;h6&gt;
  
  
  Resources:
&lt;/h6&gt;

&lt;p&gt;&lt;a href="https://www.investopedia.com/terms/e/enterprise-application-integration.asp" rel="noopener noreferrer"&gt;www.investopedia.com&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.mulesoft.com/resources/esb/enterprise-application-integration-eai-and-esb" rel="noopener noreferrer"&gt;www.mulesoft.com&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;If this post helped you in understanding a new concept today, then share it with your network &amp;amp; let someone get help from it. Also comment down below a topic from integration world that you want me to write about. For now, the next topic I’ll be posting about will talk about ESB design pattern in detail. I’ll be posting similar posts to explain things from the world of integrations.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>eai</category>
      <category>enterpriseintegration</category>
      <category>integrationpatterns</category>
      <category>datacommunication</category>
    </item>
  </channel>
</rss>
