<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Lini Mol Kumaresan on Medium]]></title>
        <description><![CDATA[Stories by Lini Mol Kumaresan on Medium]]></description>
        <link>https://medium.com/@linimol?source=rss-126c9c25edff------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*esoM3gK4ITwTdjkKVf_46w.jpeg</url>
            <title>Stories by Lini Mol Kumaresan on Medium</title>
            <link>https://medium.com/@linimol?source=rss-126c9c25edff------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 15 Nov 2026 01:12:42 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@linimol/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[Transaction Management in Mule 4]]></title>
            <link>https://medium.com/@linimol/transaction-management-in-mule-4-cc632fea2b61?source=rss-126c9c25edff------2</link>
            <guid isPermaLink="false">https://medium.com/p/cc632fea2b61</guid>
            <dc:creator><![CDATA[Lini Mol Kumaresan]]></dc:creator>
            <pubDate>Mon, 17 Nov 2025 03:31:07 GMT</pubDate>
            <atom:updated>2025-11-17T03:31:07.454Z</atom:updated>
            <content:encoded><![CDATA[<p>Transaction management plays a vital role in MuleSoft when integrating multiple systems. It ensures that a series of operations are executed as a single unit of work, meaning <strong>all succeed together</strong> or <strong>fail together </strong>thereby maintaining the data integrity and consistency across systems. If a transaction fails, Mule automatically rolls back all the operations performed within that transaction, ensuring no partial commits occur.</p><p>For Example, consider a scenario where employee details are inserted into a database and then published to <strong>JMS queue</strong>. If JMS Publish operation fails, the database insertion is rolled back automatically.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/602/1*88-7uuKPz9El4nb3wP2v4g.png" /></figure><p><strong>Supported Transaction Connectors in mule</strong></p><p>Only a few MuleSoft modules supports transaction. These includes,</p><p>· Database connector</p><p>· JMS connector</p><p>· VM connector</p><p>· Try scope</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/472/1*5o_d7JgY8sD4Tax8OSKWHA.png" /></figure><p><strong>Transaction Types in Mule 4</strong></p><p>· Local Transaction (Default) — Also called single resource transaction. Works with single resource.</p><p>· Extended Architecture (XA Transaction) — Also called Global transaction. Works with different resources.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/386/1*K8jyFIBcLqzKhMqraz9ddA.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*uo7Mz-y6zDQ-BwvKdpBXfw.png" /></figure><p><strong>Transactional Actions</strong></p><p>Transaction actions indicate how a flow or component should behave with respect to a transaction. Transactional actions tell mule whether to start a new transaction, or join existing one, or ignore it.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*vSYINMgZ8NkhPY4kRsy0_g.png" /></figure><p><strong>Local Transaction — Flow Explanation</strong></p><p>Both Local and XA transactions guarantee that:</p><ul><li>Either the entire operation succeeds</li><li>Or the entire operation is rolled back</li></ul><p>This prevents partial updates and maintains data consistency.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/602/1*6EC4O6CF4MsBjJxyXROxbQ.png" /></figure><p>The referenced mule flow demonstrates how local transaction operates in Mule 4. A local transaction can be leveraged when all the operations inside the Try scope belong to same resource. In this flow, only the database connector is involved, making it a suitable use case for local transactions.</p><p><strong>Flow structure Overview</strong></p><p>1. A <strong>Try Scope</strong> is used to apply transactional control.</p><p>2. The Try Scope is configured with:</p><ul><li><strong>Transactional Action:</strong> ALWAYS_BEGIN</li><li><strong>Transaction Type:</strong> LOCAL</li></ul><p>3. A <strong>Database Insert</strong> operation is placed inside the Try Scope.</p><p><strong>Local transaction Flow Behaviour</strong></p><p>1. When the flow execution reaches the try scope, a new local transaction is started.</p><p>2. The Database insert operation also involves in this transaction.</p><p>3. If the insertion is successful, commit will happen, if insertion fails, rollback will happen to ensure no partial data is written into the database.</p><p><strong>XA Transaction — Flow Explanation</strong></p><p>The next referenced Mule flow demonstrates an XA Transaction, where multiple resources participate in a single distributed transaction.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/602/1*bxj5YAS2xmj1KBP9std-Ig.png" /></figure><p><strong>Flow structure Overview</strong></p><p>1. A <strong>Try Scope</strong> is used to apply transactional control.</p><p>2. The Try Scope is configured with:</p><ul><li><strong>Transactional Action:</strong> ALWAYS_BEGIN</li><li><strong>Transaction Type:</strong> XA</li></ul><p>3. Two operations are placed inside the Try Scope:</p><p>§ DB Insert</p><p>§ JMS publish connector</p><p>4. Both DB and JMS configuration are enabled with XA transaction. Also, JMS config configured with <strong>No caching</strong>, if not configured deployment will be failed with the reason “<strong>Connection factory cannot be used with caching connection</strong>”.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/601/1*qmryXq9oUNkYGu_KFpWhYw.png" /></figure><p>5. <strong>Bitronix Transaction Manager(BTM)</strong> is mandatory for XA transaction. It manages distributed transactions across multiple systems. It handles rollback across all participating resources if any operation fails. It manages recovery in case of system restart.</p><p><strong>Bitronix Transaction Manager</strong> needs to be added as a global configuration. No other details need to be configured in BTM configuration, just adding this will suffice.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/602/1*c0e-12X1oXKjpeldCW7jBg.png" /></figure><p>Hope this document helps in understanding transaction management in MuleSoft. Happy learning! 😊</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=cc632fea2b61" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[MCP: Unlocking AI-Driven Integration]]></title>
            <link>https://medium.com/@linimol/mcp-unlocking-ai-driven-integration-5f52c15e0775?source=rss-126c9c25edff------2</link>
            <guid isPermaLink="false">https://medium.com/p/5f52c15e0775</guid>
            <dc:creator><![CDATA[Lini Mol Kumaresan]]></dc:creator>
            <pubDate>Mon, 15 Sep 2025 13:25:27 GMT</pubDate>
            <atom:updated>2025-09-15T13:32:14.095Z</atom:updated>
            <content:encoded><![CDATA[<p>MCP is a unified framework that allows AI systems particularly large language models to easily integrate with a wide range of enterprise applications and data sources. It acts as a bridge that links AI assistants with platforms.</p><p>It makes APIs and enterprise tools directly accessible to AI agents and external platforms.</p><p>It provides smooth orchestration across multiple business systems and applications.</p><h3><strong>How LLM works?</strong></h3><p>Cursor AI is an advanced system trained on vast amounts of data that can understand and generate human-like text. In enterprise integration, it acts as an intelligent layer that simplifies how teams interact with complex systems.</p><p>It works inside the developer’s editor, providing real-time suggestions, code generation, and documentation help.</p><p>The system interprets the input request, fetches the relevant data from Salesforce, and delivers the response in an easy-to-understand format</p><p>It processes natural language queries, interprets intent, and generates precise outputs — whether that’s crafting integration logic, summarizing data, or automating documentation.</p><p><strong>Why LLMs Alone Aren’t Enough</strong></p><p>LLMs (like GPT-4, Claude, Gemini) are stateless text reasoning engines. They are trained on vast public data, so they can:</p><p>· Summarize information</p><p>· Generate new content</p><p>· Answer general knowledge questions</p><p>· Reason over text you give them but, they cannot:</p><p>· Access your company’s private systems</p><p>· Call APIs or run commands</p><p>· Retrieve real-time data</p><p>· Modify or deploy anything in your infrastructure.</p><p>So if you ask an LLM:</p><p>“How many APIs are running in my MuleSoft Anypoint Platform?”</p><p>It will simply guess or say “I don’t know,” because it has no live connection to your Anypoint Platform data.</p><p>This limitation applies to any question like:</p><p>· “List all schedulers in our Anypoint Platform”</p><p>· “Update the Fixed Frequency for this flow”</p><p>· “How many applications are running?”</p><p>All of these require direct system access, which LLMs don’t have.</p><h4>Solution will be MCP</h4><p>Model Context Protocol (MCP) is an emerging standard that lets LLMs securely talk to your internal systems, APIs, databases, and tools.</p><p>To understand the flow, it helps to break down the two main pieces and their roles</p><h3>MCP Server</h3><p>Tool Listener — The Tool Listener is the entry point for making a Mule flow available as an MCP tool.</p><h3>MCP Client</h3><p>Cursor — Cursor is an AI-assisted development environment that helps speed up MuleSoft integration building.The system interprets the input request, fetches the relevant data from Anypoint Platform, and delivers the response in an easy-to-understand format.</p><h3>CONFIGURATION</h3><p><strong>MCP server Configuration</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/597/1*vTdafPmHyW8nzKsutU0-pw.png" /></figure><p>An MCP Server in MuleSoft is configured as an application that listens for MCP Client requests and routes them to specific tools</p><p><strong>MCP Tool Listener</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/624/1*_86-PddWRV-DgCecNr2n6A.png" /></figure><p>The listener contains Description, Schema, Response</p><p><strong>Description</strong></p><p>· A short, human-readable summary of what the tool does.</p><p>· This helps AI agents or developers understand its purpose without reading code.</p><p><strong>Parameters Schema</strong></p><p>· A JSON Schema describing the structure of the input data the tool expects.</p><p>· Specifies required and optional fields, data types, and constraints.</p><p>· The Schema contains an operation based on the call. It retrieves data and produces output.</p><p><strong>Response</strong></p><p>· MCP produces outputs dynamically, using input descriptions and specified parameters as context.</p><p><strong>MCP helps</strong></p><p>· Empower GenAI Agents to Act on Enterprise Systems Seamless access for GenAI agents (e.g., Einstein Copilot, external LLMs) to query and execute actions via MuleSoft flows.</p><p>· Instant Tooling — No New APIs Required. Existing Mule flows are auto converted into MCP tools zero redevelopment needed.</p><p>· Enterprise-Grade Security &amp; Governance</p><h3><strong>Best Practices for Using Remote MCP Server Parameter Validation</strong></h3><p>Define strict JSON schemas for tool parameters to prevent invalid or malicious inputs</p><p><strong>Response Sanitization</strong></p><p>Always clean and format output before returning to AI agents to avoid leaking sensitive data.</p><p><strong>Data Minimization</strong></p><p>Only return the data needed for the specific AI request — nothing more.</p><p><strong>Fail-Safe Handling</strong></p><p>· Ensure graceful degradation if the remote MCP server is unavailable. MCP operates within MuleSoft’s robust security framework, ensuring full compliance and control.</p><p>· <strong>Multi-System Data Orchestration</strong></p><p>Combine data across systems in a single MCP tool.</p><p>· <strong>Rapid Prototyping &amp; AI Enablement</strong></p><p>Accelerate AI feature rollout without rearchitecting applications.</p><p><strong>MCP Flow</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/624/1*tJdu7vgD-w-hH4Un3iTetw.png" /></figure><p><strong>Cursor Configuration</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/624/1*1VnozthrI8ARYeiH_YfFVg.png" /></figure><p><strong>Tool enables in Cursor</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/624/1*6_2SvyHNh8NxYOUYCd0AYg.png" /></figure><p><strong>Cursor Chat Tab</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/388/1*hGql1T0UhpMzQl6fpkv8Gw.png" /></figure><p><strong>OPERATION — GetSpecs</strong></p><p>· Retrieves detailed specifications of a deployed application in Anypoint Platform, including configuration and runtime details.</p><p>· To audit deployments, verify configurations, or check resource allocation before scaling or troubleshooting.</p><p><strong>Prompt</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/598/1*VgatbpPavitMNOoEuQZzew.png" /></figure><p><strong>Output</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/603/1*PCrOOXO7nWIjXrA6QBElog.png" /></figure><p><strong>OPERATION — UpdateFixedFrequency</strong></p><p>The UpdateFixedFrequency operation updates how often a scheduler runs in fixed frequency mode.</p><p>· Adjust intervals dynamically (e.g., from every 24 hours to every 1 hour).</p><p>· Useful for scaling up during peak activity or reducing frequency during downtime.</p><p><strong>Prompt</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/592/1*E6WdkM6MSutSs5FmukoCZQ.png" /></figure><p><strong>Output</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/604/1*TGcfReBTYro3njZTTApkwA.png" /></figure><p><strong>OPERATION — GetEnv</strong></p><p>· Retrieves the list of environments configured in the Anypoint Platform (e.g., Sandbox, Design, Production) along with their details.</p><p>· Provides visibility into available environments for deployments, testing, and governance.</p><p>· To check how many environments exist, understand their configurations, or decide where to deploy an application.</p><p><strong>Prompt</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/586/1*fL2YrG8rD5G3c_A4us4_NQ.png" /></figure><p><strong>Output</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/594/1*8cLRwPvQbvUVGdLTgfxCcA.png" /></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=5f52c15e0775" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[MuleSoft Intelligent Document Processing Implementation]]></title>
            <link>https://medium.com/@linimol/mulesoft-intelligent-document-processing-implementation-21109248d496?source=rss-126c9c25edff------2</link>
            <guid isPermaLink="false">https://medium.com/p/21109248d496</guid>
            <dc:creator><![CDATA[Lini Mol Kumaresan]]></dc:creator>
            <pubDate>Fri, 25 Jul 2025 16:39:39 GMT</pubDate>
            <atom:updated>2025-07-25T16:39:39.281Z</atom:updated>
            <content:encoded><![CDATA[<h3><strong>Intelligent Document Processing</strong></h3><p>Intelligent Document Processing in the Anypoint Platform offers a powerful, AI-driven solution for automating data extraction from structured and unstructured documents. By using predefined templates or custom prompts, and leveraging the capabilities of Einstein AI, organizations can streamline document handling and integration workflows.</p><h3>Step 1: Create New Document Action</h3><p>Under the “Create New Document” action, there are predefined templates available for Invoice and Purchase Order types, as well as a Generic option that supports custom templates for data extraction.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/624/1*mHVV4-TabOElc0bGLKXp3w.png" /></figure><h3>Step 2: Upload files</h3><p>Select the <strong>Invoice</strong> template and upload the invoice in one of the supported formats: <strong>PDF</strong>, <strong>PNG</strong>, <strong>JPG</strong>, or <strong>TIFF</strong>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/624/1*NQrhp0xoGbNvkB1g9Yh07w.png" /></figure><h3>Step 3: Run and extract data</h3><p>After uploading the file, click <strong>Run</strong> to automatically extract fields using <strong>Einstein AI</strong>. Fields can also be extracted using prompts</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/624/1*_Oh8B3XZ4dXbdrwlciam5g.png" /></figure><h3>Step 4 : Add reviewers</h3><p>Once the required fields are extracted, assign a reviewer from your organization to validate the document action and it’s accuracy. After the review, the document action can be published to Anypoint Exchange.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/624/1*ARqR08Jd8wv9GkePI2mwsg.png" /></figure><h3>Step 5 : Publish to exchange</h3><p>Click Publish and publish the document action to the exchange.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/624/1*AEPJ9adyXvqS70G_Ktsgig.png" /></figure><p>There are two endpoints available — one for uploading files and another for extracting JSON data. To access these endpoints via Postman, you need to create a Connected App to generate an access token using the Client ID and Client Secret.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/624/1*ueFBTqUo4mo9SsZHeWBFsg.png" /></figure><h3>Step 6 : Create Connected App in Access Management</h3><p><strong>Steps to set up:</strong></p><p>1. Navigate to <strong>Access Management → Connected Apps → Create App</strong> in the Anypoint Platform.</p><p>2. Create a new app and configure the required scopes for token generation and file upload.</p><p>3. Once created, copy the <strong>Client ID</strong> and <strong>Client Secret</strong>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/624/1*RyC9UyfgliTKQFOLnzLGZA.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/624/1*QPCQruQq-ICL-n3i1OcFHQ.png" /></figure><h3>Step 7 : Upload file via Postman for processing</h3><p>Navigate to Anypoint Exchange where your Document Action is published, locate the POST method URL in the API specification used for uploading a document, and copy the complete execution endpoint.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/624/1*x63jpQurPjZ1fj_a12akdA.png" /></figure><h4>Postman setup</h4><p>1. Set method to POST and paste the URL.</p><p>2. In <strong>Authorization</strong> tab:</p><p>a. Type: OAuth 2.0</p><p>b. Add Access token URL, client ID, client secret, grant type.</p><p>c. Choose “Get New Access Token” to fetch the bearer token.</p><p>d. Add the token to header.</p><p>3. In <strong>Body</strong> tab:</p><p>a. Choose form-data</p><p>b. Add key file, set type to File, and upload your file.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/624/1*ubPusLTBJMGCntwly46zCA.png" /></figure><p>Once the request is successfully sent to the API, it returns a JSON response similar to the following:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/624/1*Q9qwpIyjZXZQj7N4TOdCtA.png" /></figure><h3>Step 8: Retrieving the processed data</h3><p>Get the id from the JSON response and replace {executionId} in the GET method URL (provided in Exchange) with this value.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/624/1*T6aAn6znsac0cvYmK0Kq9w.png" /></figure><h4>Postman setup</h4><p>1. Set method to GET and paste the URL.</p><p>2. In <strong>Authorization</strong> tab:</p><p>a. Type: Bearer Token</p><p>b. Add the access token.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/624/1*oEphDgJHQ1jVlikJsANp7w.png" /></figure><p>This will return the processed document data in JSON format, which can then be utilized for further processing.</p><h3>Conclusion</h3><p>Intelligent Document Processing in Anypoint Platform enables AI-driven extraction of data from documents using predefined templates or custom prompts with Einstein AI. Secure access via Connected Apps and simple Postman setup makes the process of uploading files and retrieving structured JSON fast, scalable, and ready for automation.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=21109248d496" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>