<?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>Forem: Andrii Siryi</title>
    <description>The latest articles on Forem by Andrii Siryi (@asiryi).</description>
    <link>https://forem.com/asiryi</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%2F3579990%2Fe66efaae-3d7e-4fb8-918e-655e6f0e7bfa.png</url>
      <title>Forem: Andrii Siryi</title>
      <link>https://forem.com/asiryi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/asiryi"/>
    <language>en</language>
    <item>
      <title>When Should an Analyst Suggest Using Queues in Integrations?</title>
      <dc:creator>Andrii Siryi</dc:creator>
      <pubDate>Tue, 28 Oct 2025 15:11:28 +0000</pubDate>
      <link>https://forem.com/asiryi/when-should-an-analyst-suggest-using-queues-in-integrations-389c</link>
      <guid>https://forem.com/asiryi/when-should-an-analyst-suggest-using-queues-in-integrations-389c</guid>
      <description>&lt;p&gt;One of the most underrated skills for a business or system analyst in integration projects is knowing when to recommend a message queue — tools like RabbitMQ, Kafka, or Azure Service Bus.&lt;/p&gt;

&lt;p&gt;Let’s be honest: not every integration needs one. But when it does, queues can save your system from chaos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What Queues Actually Solve&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Message queues are not just “another tech buzzword.”&lt;br&gt;
They handle asynchronous communication — meaning systems don’t have to wait for each other to respond.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Example:&lt;/em&gt;&lt;br&gt;
Instead of sending an invoice from System A and waiting for System B to confirm,&lt;br&gt;
System A drops the invoice into a queue.&lt;br&gt;
System B picks it up when it’s ready.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Benefits:&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Smooth data flow even if one system is slow or offline&lt;/li&gt;
&lt;li&gt;Built-in retry and error handling&lt;/li&gt;
&lt;li&gt;Better scalability — handle thousands of messages per second&lt;/li&gt;
&lt;li&gt;Natural decoupling between systems (less spaghetti logic)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;When Analysts Should Recommend Queues&lt;/strong&gt;&lt;br&gt;
You don’t need a queue for every integration. But consider it when you see these signs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;High volume of transactions — more than a few thousand per hour.&lt;/li&gt;
&lt;li&gt;Unstable or external systems — APIs that sometimes fail or have latency issues.&lt;/li&gt;
&lt;li&gt;Different processing speeds — one system sends faster than another can receive.&lt;/li&gt;
&lt;li&gt;Business-critical data — where you can’t risk data loss or duplication.&lt;/li&gt;
&lt;li&gt;Complex workflows — where multiple consumers (systems) need the same event.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;When Not to Use Queues&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;For real-time user interactions (e.g., “show me the balance now”) — queues add delay.&lt;/li&gt;
&lt;li&gt;For simple 1:1 synchronous API calls — direct REST is cleaner and faster.&lt;/li&gt;
&lt;li&gt;When the team can’t support monitoring (queues need visibility and alerts).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As an analyst, you don’t have to design Kafka topics or RabbitMQ exchanges.&lt;br&gt;
But you should recognize the moment when a queue turns from “technical detail” into a business enabler — ensuring reliability, scalability, and peace of mind for everyone involved.&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>microservices</category>
      <category>systemdesign</category>
    </item>
    <item>
      <title>Field Mapping vs. Canonical Data Model — Which One Wins in Integrations?</title>
      <dc:creator>Andrii Siryi</dc:creator>
      <pubDate>Tue, 28 Oct 2025 15:07:31 +0000</pubDate>
      <link>https://forem.com/asiryi/field-mapping-vs-canonical-data-model-which-one-wins-in-integrations-2oj0</link>
      <guid>https://forem.com/asiryi/field-mapping-vs-canonical-data-model-which-one-wins-in-integrations-2oj0</guid>
      <description>&lt;p&gt;When building integrations between systems, one of the first architectural choices you’ll face is how to align data between them.&lt;br&gt;
Two main approaches dominate this conversation: direct field mapping and the canonical data model.&lt;br&gt;
Let’s break them down.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Field Mapping: Simple but Fragile&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Field mapping means you connect each field from System A directly to a matching field in System B.&lt;br&gt;
It’s fast to implement and easy to visualize:&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
“CustomerName” → “ClientFullName”&lt;br&gt;
“InvoiceDate” → “BillingDate”&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Pros:&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Quick setup for simple integrations&lt;/li&gt;
&lt;li&gt;Easier to debug and understand&lt;/li&gt;
&lt;li&gt;Great for 1-to-1 integrations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Cons:&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Every new system adds complexity — you end up maintaining dozens of mappings&lt;/li&gt;
&lt;li&gt;Any field name or format change breaks the flow&lt;/li&gt;
&lt;li&gt;Hard to scale beyond a few connections&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This approach is fine for small, stable environments — like syncing data between CRM and ERP once a day.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Canonical Data Model: Structured and Scalable&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A canonical model introduces a shared, unified data layer — a kind of “translation dictionary” for your enterprise.&lt;br&gt;
Instead of connecting systems directly, each system maps to the canonical schema.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
System A → Canonical Model → System B&lt;br&gt;
“CustomerName” → “Customer.FullName” → “ClientFullName”&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Pros:&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Greatly simplifies multi-system integrations&lt;/li&gt;
&lt;li&gt;Reduces maintenance costs over time&lt;/li&gt;
&lt;li&gt;Makes it easier to add or replace systems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Cons:&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Requires more design work upfront&lt;/li&gt;
&lt;li&gt;May be overkill for small projects&lt;/li&gt;
&lt;li&gt;Needs governance and version control&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This approach shines in large ecosystems — where data flows across multiple ERPs, CRMs, or custom apps.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;So… Which One to Choose?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you’re connecting two systems and don’t expect frequent schema changes — use field mapping.&lt;br&gt;
But if your integration landscape is growing and you want to reduce long-term pain — invest in a canonical model early.&lt;/p&gt;

&lt;p&gt;Think of field mapping as a shortcut, and the canonical model as a foundation.&lt;/p&gt;

</description>
      <category>systemdesign</category>
      <category>data</category>
      <category>designpatterns</category>
      <category>architecture</category>
    </item>
    <item>
      <title>How to build an AI that predicts ERP integration failures.</title>
      <dc:creator>Andrii Siryi</dc:creator>
      <pubDate>Tue, 28 Oct 2025 15:01:37 +0000</pubDate>
      <link>https://forem.com/asiryi/how-to-build-an-ai-that-predicts-erp-integration-failures-52gc</link>
      <guid>https://forem.com/asiryi/how-to-build-an-ai-that-predicts-erp-integration-failures-52gc</guid>
      <description>&lt;p&gt;Everyone who works with integrations has faced situations where integration can break for different reasons, and the system or business analyst can spend hours chasing failures after they happen.&lt;/p&gt;

&lt;p&gt;But what if we can predict integration failures before they occur? &lt;/p&gt;

&lt;p&gt;Just as NVIDIA does in its &lt;strong&gt;NVIDIA Omniverse&lt;/strong&gt; platform (&lt;a href="https://www.linkedin.com/showcase/nvidia-omniverse/" rel="noopener noreferrer"&gt;https://www.linkedin.com/showcase/nvidia-omniverse/&lt;/a&gt;), where AI simulates robot collisions and system bottlenecks before real-world deployment, you can try those predictive steps in the ERP integration processes.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;So, first of all, you can try to collect integration logs to the CSV file over the past few months.
For example, I extracted the following:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;ERP type (NetSuite, Sage Intacct, etc.)&lt;/li&gt;
&lt;li&gt;API endpoints (/invoices, /payments, /customers, etc)&lt;/li&gt;
&lt;li&gt;Payload size&lt;/li&gt;
&lt;li&gt;Number of fields&lt;/li&gt;
&lt;li&gt;Response time&lt;/li&gt;
&lt;li&gt;HTTP status code&lt;/li&gt;
&lt;li&gt;Outcome (1 = success, 0 = failure)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These fields gave the model context on what happens under the hood of each request.&lt;/p&gt;

&lt;p&gt;I attached the example of the CSV table.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The second step, you train an XGBoost classifier.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Using Google Colab (&lt;a href="https://colab.research.google.com/" rel="noopener noreferrer"&gt;https://colab.research.google.com/&lt;/a&gt;), I trained the model on ~1000 rows of logs.&lt;br&gt;
The model learned patterns like:&lt;/p&gt;

&lt;p&gt;Payloads &amp;gt;500 KB + more than 3 custom fields + /invoice = 78% failure risk.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The third step, I tested new requests.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Before hitting the ERP API, I request metadata through the model. If the predicted risk is high, I pause, flag it, or reroute it.&lt;/p&gt;

&lt;p&gt;Finally, you will receive:&lt;/p&gt;

&lt;p&gt;a) Caught high-risk failures before they happened;&lt;br&gt;
b) Reduced fire-fighting in production;&lt;br&gt;
c) Gave business visibility into fragile integration conditions;&lt;br&gt;
d) Boosted confidence during testing;&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%2Fmsc72x9paekqggxli111.jpg" 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%2Fmsc72x9paekqggxli111.jpg" alt=" " width="717" height="154"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>machinelearning</category>
      <category>api</category>
      <category>ai</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Using NVIDIA NeMo Agent Toolkit to improve data sync processes</title>
      <dc:creator>Andrii Siryi</dc:creator>
      <pubDate>Tue, 28 Oct 2025 14:59:27 +0000</pubDate>
      <link>https://forem.com/asiryi/using-nvidia-nemo-agent-toolkit-to-improve-data-sync-processes-2f1l</link>
      <guid>https://forem.com/asiryi/using-nvidia-nemo-agent-toolkit-to-improve-data-sync-processes-2f1l</guid>
      <description>&lt;p&gt;As a PO/BA/SA managing different integrations, you often deal with complex workflows: syncing various data across systems. Manually tracking these operations can be slow, difficult, and error-prone. &lt;/p&gt;

&lt;p&gt;NVIDIA NeMo Agent Toolkit (NAT) helps automate, monitor, and optimize these workflows with minimal coding.&lt;/p&gt;

&lt;p&gt;What it does:&lt;/p&gt;

&lt;p&gt;NeMo Agent Toolkit allows you to create intelligent agents that call your integration tools — REST/GraphQL APIs, SDK clients — in a structured workflow. Agents can reason about steps, execute actions, log results, and provide insights through dashboards.&lt;/p&gt;

&lt;p&gt;How I apply it:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Sync Monitoring Agent&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For instance, if you work with ERP integrations, you can build a simple agent to check the status of invoices and payment syncs. It verifies balances, ensures all required fields are updated, and highlights inconsistencies.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Hands-On Without Developer Skills&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;NAT provides a web UI accessible at &lt;a href="http://127.0.0.1:5173" rel="noopener noreferrer"&gt;http://127.0.0.1:5173&lt;/a&gt; after running.&lt;br&gt;
In this UI, you can type commands like: Sync Agent: Check invoices for Customer ABC.&lt;/p&gt;

&lt;p&gt;The agent sequentially calls tools you have configured — e.g., fetching invoices, payments, and calculating balances, and displays results step-by-step. After that, I can see which invoices are synced, which need attention, and suggested actions. And all without writing code.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Connecting to your Connector&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Any API or SDK call from your connector can be registered as a tool in NAT. Then, the agent’s workflow uses these tools to perform actions like retrieving any data, applying some logic, and validating sync status. The UI provides real-time logs, so you can see exactly what the agent did, step by step.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Iterative Learning&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Start with a small set of scenarios, for instance, such as partially paid invoices or overpayments. Running them through the agent refines its workflow and improves accuracy. Over time, the agent becomes smarter and more reliable.&lt;/p&gt;

&lt;p&gt;So, why can it be important for PO/BA/SA?&lt;/p&gt;

&lt;p&gt;With NAT, you can manage and optimize syncs efficiently, even without a development background. Agents make processes observable, repeatable, and actionable. The web UI ensures you can interact with the agent, monitor results, and improve workflows.&lt;/p&gt;

&lt;p&gt;Here is the link to the documentation - &lt;a href="https://developer.nvidia.com/nemo-agent-toolkit" rel="noopener noreferrer"&gt;https://developer.nvidia.com/nemo-agent-toolkit&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>api</category>
      <category>devops</category>
    </item>
    <item>
      <title>Using Python and AI to Enhance Requirements Elicitation</title>
      <dc:creator>Andrii Siryi</dc:creator>
      <pubDate>Tue, 28 Oct 2025 14:53:59 +0000</pubDate>
      <link>https://forem.com/asiryi/using-python-and-ai-to-enhance-requirements-elicitation-k2p</link>
      <guid>https://forem.com/asiryi/using-python-and-ai-to-enhance-requirements-elicitation-k2p</guid>
      <description>&lt;p&gt;In my work as a Product Owner and System Analyst, collecting and reviewing requirements and documents is a daily task. &lt;/p&gt;

&lt;p&gt;To make this process faster and more efficient, I developed a small assistant using Python and AI.&lt;br&gt;
The assistant monitors comments in Google Docs. When I highlight text and write a question or instruction starting with AI:, the bot analyzes the selected text and provides feedback directly in the document.&lt;/p&gt;

&lt;p&gt;This approach helps to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Quickly check the format and clarity of requirements.&lt;/li&gt;
&lt;li&gt;Provide suggestions for improving text without leaving the document.&lt;/li&gt;
&lt;li&gt;Save time for System/Business Analysts and Product Owners who frequently review content.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;From a technical perspective, the Python script uses several key components:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Google Docs and Drive APIs to read comments and post replies.&lt;/li&gt;
&lt;li&gt;OpenAI API to analyze highlighted text and generate feedback.&lt;/li&gt;
&lt;li&gt;Logic to ignore old comments at startup and avoid duplicate replies, ensuring the bot only responds to new or repeated comments intentionally.&lt;/li&gt;
&lt;li&gt;Temporary tracking of processed comment IDs during each cycle to maintain performance and prevent multiple responses to the same comment.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;By combining Python and AI, this tool automates part of the review process, letting me focus on higher-level analysis and decision-making instead of manual text checks.&lt;/p&gt;

&lt;p&gt;I attached straightforward examples of how it looks:&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%2Fohgb8xeyvxmemjll6zfx.jpg" 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%2Fohgb8xeyvxmemjll6zfx.jpg" alt=" " width="800" height="534"&gt;&lt;/a&gt;&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%2F6o1hlsc6cpo1wsk4vo1v.jpg" 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%2F6o1hlsc6cpo1wsk4vo1v.jpg" alt=" " width="800" height="491"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>productivity</category>
      <category>ai</category>
      <category>tooling</category>
    </item>
    <item>
      <title>Safe and Smart Project Discovery. How NVIDIA Nemotron Beats Cloud AI for Integration Projects</title>
      <dc:creator>Andrii Siryi</dc:creator>
      <pubDate>Tue, 28 Oct 2025 14:52:27 +0000</pubDate>
      <link>https://forem.com/asiryi/safe-and-smart-project-discovery-how-nvidia-nemotron-beats-cloud-ai-for-integration-projects-1o6p</link>
      <guid>https://forem.com/asiryi/safe-and-smart-project-discovery-how-nvidia-nemotron-beats-cloud-ai-for-integration-projects-1o6p</guid>
      <description>&lt;p&gt;When you start an integration project, the discovery phase is a very important part to understand the application, APIs, and processes. It can take a lot of time if done manually. &lt;br&gt;
Unlike cloud AI tools, which can raise concerns about data privacy, NVIDIA Nemotron works locally. This means your project data stays safe while Nemotron helps you analyze it.&lt;br&gt;
Nvidia Nemotron it is a thinking brain that can predict a lot of steps ahead.&lt;br&gt;
The model reads documentation, understands patterns, and can even suggest next steps, helping the team move faster and avoid mistakes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Nvidia Nemotron works well for discovery:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Security: Your sensitive data never leaves your environment.&lt;/li&gt;
&lt;li&gt;Smart analysis: Nemotron can process technical documents and find important details quickly.&lt;/li&gt;
&lt;li&gt;Guided steps: It can suggest what to check next, making discovery more structured.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Practical example:&lt;/strong&gt;&lt;br&gt;
As an example, I used Nvidia Nemotron to review API documentation. It helped identify key API endpoints, authentication methods, potential error scenarios, potential documents behaviour depends of their statuses.&lt;br&gt;
Within a few hours, I had a structured discovery project report and clear next steps for testing.&lt;br&gt;
Thus, within a few hours, I can quickly assess how the integration with this system might look and whether it is generally compatible, based on the requirements of the system that will receive the integrated data.&lt;/p&gt;

&lt;p&gt;Compared to using ChatGPT or other OpenAI tools, I didn’t expose sensetive data. Nemotron’s local, thinking approach made the discovery phase faster, safer, and more predictable.&lt;/p&gt;

&lt;p&gt;Explore NVIDIA Nemotron here:&lt;a href="https://www.nvidia.com/en-us/ai-data-science/foundation-models/nemotron/" rel="noopener noreferrer"&gt;https://www.nvidia.com/en-us/ai-data-science/foundation-models/nemotron/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>ai</category>
      <category>tooling</category>
      <category>security</category>
    </item>
    <item>
      <title>Lessons from Volvo and BMW: How Car Companies Really Integrate Their Systems</title>
      <dc:creator>Andrii Siryi</dc:creator>
      <pubDate>Tue, 28 Oct 2025 14:49:30 +0000</pubDate>
      <link>https://forem.com/asiryi/lessons-from-volvo-and-bmw-how-car-companies-really-integrate-their-systems-114n</link>
      <guid>https://forem.com/asiryi/lessons-from-volvo-and-bmw-how-car-companies-really-integrate-their-systems-114n</guid>
      <description>&lt;p&gt;Integrating systems in the automotive industry is much more complex than just data mapping between standard business systems like ERP or CRM. A good real-world example is the collaboration between Volvo and BMW in Vehicle-to-Everything (V2X) and telematics services, where cloud platforms, ECUs, telematics units, and ADAS systems all need to work together. These projects require attention not only to data structures but also to protocols, security, and real-time operation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.energy-storage.news/bmw-volvo-step-up-interest-in-bi-directional-charging-and-vehicle-to-x-use-cases/" rel="noopener noreferrer"&gt;https://www.energy-storage.news/bmw-volvo-step-up-interest-in-bi-directional-charging-and-vehicle-to-x-use-cases/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Differences in Automotive System Integration&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Looking at Volvo and BMW, we can see several things that make car system integration different from standard data integration: &lt;/p&gt;

&lt;p&gt;Variety of systems -&amp;gt; ECUs, telematics, multimedia, ADAS, each using different protocols (CAN, LIN, Ethernet).&lt;/p&gt;

&lt;p&gt;Real-time data -&amp;gt; sensors and control systems need instant responses; batch updates alone are not sufficient.&lt;/p&gt;

&lt;p&gt;Security and standards –&amp;gt; ISO 26262, AUTOSAR, certified protocols, and encryption are required.&lt;/p&gt;

&lt;p&gt;Complex data –&amp;gt; binary packets, telemetry, and multiple parameters with interdependencies.&lt;/p&gt;

&lt;p&gt;Version compatibility –&amp;gt; ECUs and software may have different versions, so integration should ensure compatibility.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Approaches for the Discovery Phase&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For systems analysts planning integration in automotive projects, the following methods are especially useful during the discovery phase:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Integration Context Mapping –&amp;gt; visual maps showing how systems and modules interact, including data flows.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Interface Analysis –&amp;gt; detailed study of interfaces, protocols, message formats, and security requirements.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Data &amp;amp; Protocol Mapping –&amp;gt; matching parameters and formats between systems, including unit conversions and range checks.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Sequence Modeling –&amp;gt; diagrams showing the order of messages and system reactions in real time.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Gap Analysis &amp;amp; Compatibility Assessment -&amp;gt; identifying version mismatches, protocol differences, and standards gaps.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Proof of Concept (PoC) –&amp;gt; pilot testing integration points to verify data flow and timing.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The discovery phase in automotive system integration goes beyond simple data mapping. System Analysts should understand technical system features, protocols, security, and version compatibility. &lt;br&gt;
Using structured analysis methods and visual models helps plan integrations correctly and reduces risks when connecting complex automotive systems.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>YAML-Based Story Mapping</title>
      <dc:creator>Andrii Siryi</dc:creator>
      <pubDate>Mon, 27 Oct 2025 07:26:58 +0000</pubDate>
      <link>https://forem.com/asiryi/yaml-based-story-mapping-3bcj</link>
      <guid>https://forem.com/asiryi/yaml-based-story-mapping-3bcj</guid>
      <description>&lt;p&gt;System Analysts who work with integration processes should formulate user stories in a way that diverges from the traditional structure. This is primarily due to the need for a more technical and structured description, which allows for the inclusion of integration-specific details.&lt;/p&gt;

&lt;p&gt;The user story might need to specify exactly what kind of data should be retrieved via an API, from which system, using what HTTP method, and so on.&lt;br&gt;
Additionally, such user stories can incorporate validation requirements. &lt;br&gt;
For instance, before sending the data to an external system through an API, certain transformations or formatting might be required.&lt;/p&gt;

&lt;p&gt;As a result, the structure of a user story in this context tends to differ significantly. &lt;/p&gt;

&lt;p&gt;Here’s an example of how a story might look:&lt;/p&gt;

&lt;p&gt;story_map:&lt;br&gt;
 epic: "Invoice Integration"&lt;/p&gt;

&lt;p&gt;user_stories:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;id: US001&lt;br&gt;
title: "Obtain AR invoice"&lt;br&gt;
as_a: "Application X"&lt;br&gt;
i_want: "obtain AR invoices from ERP {{X}} via API"&lt;br&gt;
so_that: "I can handle this invoice and send to the client"&lt;br&gt;
source_system: "ERP {{X}}"&lt;br&gt;
target_system: "Application X"&lt;br&gt;
direction: "pull"&lt;br&gt;
api_call:&lt;br&gt;
method: "GET"&lt;br&gt;
endpoint: "/api/invoices"&lt;br&gt;
auth_required: true&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;id: US002&lt;br&gt;
title: "Validate data"&lt;br&gt;
as_a: "Application X"&lt;br&gt;
i_want: "validate the fields of the received invoice"&lt;br&gt;
so_that: "I don't sync the invoice with errors"&lt;br&gt;
validation:&lt;br&gt;
invoice_number: "required"&lt;br&gt;
invoice_id: "required"&lt;br&gt;
invoice_total_amount: "should be &amp;gt; 0"&lt;br&gt;
invoice_status: "should be 'posted'"&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;id: US003&lt;br&gt;
title: "Push invoice payment"&lt;br&gt;
as_a: "Application X"&lt;br&gt;
i_want: "push the invoice payment created in Application X to the ERP"&lt;br&gt;
so_that: "the payment is approved in the ERP and synchronized back"&lt;br&gt;
source_system: "Application X"&lt;br&gt;
target_system: "ERP {{X}}"&lt;br&gt;
direction: "push"&lt;br&gt;
api_call:&lt;br&gt;
method: "POST"&lt;br&gt;
endpoint: "/api/payments"&lt;br&gt;
auth_required: true&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>agile</category>
      <category>api</category>
      <category>architecture</category>
    </item>
    <item>
      <title>For Business/System Analysts who work with ERP integrations.</title>
      <dc:creator>Andrii Siryi</dc:creator>
      <pubDate>Mon, 27 Oct 2025 07:26:26 +0000</pubDate>
      <link>https://forem.com/asiryi/for-businesssystem-analysts-who-work-with-erp-integrations-5f4</link>
      <guid>https://forem.com/asiryi/for-businesssystem-analysts-who-work-with-erp-integrations-5f4</guid>
      <description>&lt;p&gt;When designing ERP integrations (for AR/AP document flows), Business/System Analysts often face a range of “gotcha” questions — technical, architectural, and sometimes unexpected.&lt;br&gt;
Here are some of the real-world questions I ask clients during the API and ERP connector discovery phase:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;What’s the minimum required ERP version to support all AR/AP endpoints?&lt;/li&gt;
&lt;li&gt;Could upgrading the ERP version change the API behavior (fields, formats)?&lt;/li&gt;
&lt;li&gt;Are there any heavy or slow API methods under load? Recommended workarounds? &lt;/li&gt;
&lt;li&gt;Does the ERP provider charge for API calls, or is usage unlimited?&lt;/li&gt;
&lt;li&gt;Can we get a list of possible API error codes?&lt;/li&gt;
&lt;li&gt;Any record count limits per request? (e.g., max 1000 records in GET)&lt;/li&gt;
&lt;li&gt;What type of authentication is used — Basic Auth, OAuth2, or token-based?&lt;/li&gt;
&lt;li&gt;What’s the average response time of the API?&lt;/li&gt;
&lt;li&gt;Are there any debug/logging tools if something goes wrong with the call?&lt;/li&gt;
&lt;li&gt;Any breaking changes in recent patches that could affect us?&lt;/li&gt;
&lt;li&gt;Does the API support batch insert/update or only record-by-record?&lt;/li&gt;
&lt;li&gt;In what format are dates returned? Full datetime or date-only?&lt;/li&gt;
&lt;li&gt;How are balances returned (positive/negative for credit memos)?&lt;/li&gt;
&lt;li&gt;Can documents be posted without updating the "last modified" date?&lt;/li&gt;
&lt;li&gt;Can an account include multiple subsidiaries? How to filter by them in the API?&lt;/li&gt;
&lt;li&gt;Are any API methods planned for deprecation? What will replace them?&lt;/li&gt;
&lt;li&gt;Are some API endpoints available only with paid ERP modules or add-ons?&lt;/li&gt;
&lt;li&gt;Are some fields or features hidden unless specific ERP configuration settings are enabled?&lt;/li&gt;
&lt;li&gt;Does the ERP API return full relational data (e.g., linked documents, GL splits), or do we need extra queries?&lt;/li&gt;
&lt;li&gt;How can we detect deleted records if the API doesn’t expose a deleted flag or status?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;These questions aren't just technical — they help avoid costly mistakes, failed syncs, or misunderstood logic.&lt;/p&gt;

</description>
      <category>api</category>
      <category>architecture</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Recommendations on how to properly troubleshoot integration issues in support.</title>
      <dc:creator>Andrii Siryi</dc:creator>
      <pubDate>Mon, 27 Oct 2025 07:25:51 +0000</pubDate>
      <link>https://forem.com/asiryi/recommendations-on-how-to-properly-troubleshoot-integration-issues-in-support-ccn</link>
      <guid>https://forem.com/asiryi/recommendations-on-how-to-properly-troubleshoot-integration-issues-in-support-ccn</guid>
      <description>&lt;p&gt;When a client reports that certain data hasn’t synced correctly, it’s important to follow a structured, step-by-step troubleshooting process to identify and resolve the root cause. &lt;/p&gt;

&lt;p&gt;I added some recommendations that can help quickly to identify the root cause:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Start with the integration logs.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;a) You need to Identify the relevant API request/response in logs.&lt;br&gt;
b) Check timeouts, unexpected responses, or missing data in the response, and check the consistency of the API call.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Check the connector transformation logs.&lt;br&gt;
Here you can identify if any errors occurred while parsing, mapping, or converting the data.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Inspect the upload database.&lt;br&gt;
a) Compare the data received by the connector via API with what's stored in the Database.&lt;br&gt;
b) Ensure that all required fields are present and valid.&lt;br&gt;
c) This helps determine whether the issue occurred before or after the upload stage.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Check sync rules and configuration.&lt;br&gt;
Ensure the sync configuration matches the data:&lt;br&gt;
a) Is the object type enabled for syncing?&lt;br&gt;
b) Are the filters or date ranges correctly set?&lt;br&gt;
c) Are the fields mapping misconfiguring?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Try to reproduce the issue (if needed).&lt;br&gt;
If the problem persists, try to replicate the issue in a test environment or sandbox with similar data.&lt;br&gt;
This helps confirm if the root cause is data-specific, configuration-based, or system-wide.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Communication with the client.&lt;br&gt;
Keep the client informed at each stage:&lt;br&gt;
a) What was checked&lt;br&gt;
b) What was found&lt;br&gt;
c) What actions will be taken (manual resync, fix deployment, etc.)&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>api</category>
      <category>data</category>
      <category>database</category>
    </item>
    <item>
      <title>Think Twice: Customizations That Break Your Integration</title>
      <dc:creator>Andrii Siryi</dc:creator>
      <pubDate>Mon, 27 Oct 2025 07:24:26 +0000</pubDate>
      <link>https://forem.com/asiryi/think-twice-customizations-that-break-your-integration-3mff</link>
      <guid>https://forem.com/asiryi/think-twice-customizations-that-break-your-integration-3mff</guid>
      <description>&lt;p&gt;When you build data integrations between applications, small details are very important. If you miss them, you might need to rebuild parts of the integration later, which costs time and money.&lt;/p&gt;

&lt;p&gt;One common case is when a team asks the client to make custom changes in their system to help sync the data. This might work in the short term, but it can also bring risks if you don’t think it through.&lt;/p&gt;

&lt;p&gt;Before you suggest or require such changes, ask yourself:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Will this work for all clients, or just a few?&lt;/li&gt;
&lt;li&gt;Does it require an extra license?&lt;/li&gt;
&lt;li&gt;Can the client do it themselves, or will they need outside help (for example, a vendor)?&lt;/li&gt;
&lt;li&gt;Is it supported in every version of the app?&lt;/li&gt;
&lt;li&gt;Could this setting be removed or changed later in the app?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Why this matters:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Scalability –&amp;gt; integrations should work for many clients, not only special cases.&lt;/li&gt;
&lt;li&gt;Maintainability –&amp;gt; customizations can break after upgrades and create extra work.&lt;/li&gt;
&lt;li&gt;Risk reduction –&amp;gt; planning early helps avoid broken syncs and unhappy clients.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;By asking these questions up front, you can save a lot of rework and keep integrations stable in the long run.&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>discuss</category>
      <category>systemdesign</category>
    </item>
    <item>
      <title>Stop Pulling Your Hair Out Over Integrations: Simple Tips</title>
      <dc:creator>Andrii Siryi</dc:creator>
      <pubDate>Mon, 27 Oct 2025 07:22:47 +0000</pubDate>
      <link>https://forem.com/asiryi/stop-pulling-your-hair-out-over-integrations-simple-tips-55f4</link>
      <guid>https://forem.com/asiryi/stop-pulling-your-hair-out-over-integrations-simple-tips-55f4</guid>
      <description>&lt;p&gt;Using your app to integrate data from an ERP system requires some essential tips and things that you need to keep in mind to avoid problems later.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Understand What Data You Need to Integrate&lt;br&gt;
Before setting up the integration, you should understand which ERP data your app will use and how it should be mapped inside your app. This helps prevent mistakes later.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Choose the Right Integration Approach&lt;br&gt;
Your app can get data in different ways. Sometimes a simple API call is enough, sometimes you need more complex workflows to reduce the complexity and minimize API calls. Pick the approach that works for the data you need and the ERP system you’re integrating with.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Make Sure the Data is Accurate&lt;br&gt;
Always check that the data coming from ERP is clean. Remove duplicates, verify references, and make sure everything matches your app’s requirements. Clean data makes the integration reliable.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Think Carefully About Customizations&lt;br&gt;
ERP systems often need small tweaks to work perfectly with your app. But customizations can be risky, costly, and hard to maintain. Only ask clients for changes if it’s really necessary, and plan for long-term support.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Plan for Scale and Maintenance&lt;br&gt;
Make sure your integration works for multiple clients and multiple ERP versions. Use automation in your app to handle repetitive tasks and make updates easier. This keeps everything stable as your client base grows.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Consider Non-Functional Requirements&lt;br&gt;
It’s important to understand how much data the client plans to integrate and how often. This helps you estimate the system load, predict performance impact, and plan for stress testing. Thinking about this upfront prevents surprises and ensures the integration runs smoothly under real conditions.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
    </item>
  </channel>
</rss>
