<?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: KumarAtGIT</title>
    <description>The latest articles on DEV Community by KumarAtGIT (@kumartalkstech).</description>
    <link>https://dev.to/kumartalkstech</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%2F2817801%2F95219d5c-e612-4d2e-b84e-46de65538eff.png</url>
      <title>DEV Community: KumarAtGIT</title>
      <link>https://dev.to/kumartalkstech</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kumartalkstech"/>
    <language>en</language>
    <item>
      <title>Vector Search Analysis - Google BigQuery vs Azure AI Search</title>
      <dc:creator>KumarAtGIT</dc:creator>
      <pubDate>Sun, 09 Feb 2025 18:10:40 +0000</pubDate>
      <link>https://dev.to/kumartalkstech/vector-search-analysis-google-bigquery-vs-azure-ai-search-4ka7</link>
      <guid>https://dev.to/kumartalkstech/vector-search-analysis-google-bigquery-vs-azure-ai-search-4ka7</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;As more people embrace generative AI solutions, search technology has become a major focus area. Traditional search methods relied on text matching and some fuzzy logic, but generative AI has introduced vector search capabilities. This new approach significantly enhances traditional methods by adding contextual search, greatly improving the natural language search experience for users.&lt;/p&gt;

&lt;p&gt;In this blog, we'll share our live project experience using Google BigQuery's vector search capabilities and Azure AI's search capabilities. We'll discuss our findings on how both tech stacks perform for image-related semantic search and deduplication use cases.&lt;/p&gt;

&lt;h2&gt;
  
  
  Analysis Details
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Test Data&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The test data used for this analysis included a set of images and semantically similar images. This data was prepared as part of a human rubric. The idea was to use this reference test data of similar images to evaluate how well the two tech stacks perform in terms of similar search criteria.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Criteria&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The criteria used for this analysis included popular search algorithms like &lt;strong&gt;Euclidean distance&lt;/strong&gt; and &lt;strong&gt;Cosine similarity&lt;/strong&gt;. While other algorithms like dot product and HNSW are also available in the vector search domain, we focused on the first two as they are the most widely used for this type of use case.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Euclidean distance (&lt;a href="https://en.wikipedia.org/wiki/Euclidean_distance" rel="noopener noreferrer"&gt;https://en.wikipedia.org/wiki/Euclidean_distance&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Cosine similarity (&lt;a href="https://en.wikipedia.org/wiki/Cosine_similarity" rel="noopener noreferrer"&gt;https://en.wikipedia.org/wiki/Cosine_similarity&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Dot Product (&lt;a href="https://en.wikipedia.org/wiki/Dot_product" rel="noopener noreferrer"&gt;https://en.wikipedia.org/wiki/Dot_product&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;HNSW (&lt;a href="https://en.wikipedia.org/wiki/Hierarchical_navigable_small_world" rel="noopener noreferrer"&gt;https://en.wikipedia.org/wiki/Hierarchical_navigable_small_world&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Results&lt;/strong&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%2F949y63t0icgu7fxhicp5.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%2F949y63t0icgu7fxhicp5.png" alt="Results_Human_Bigquery_AzureAI" width="800" height="516"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We conducted the experiment on over 50 similar images, varying in terms of image quality, composition, theme, number of items, and lifestyle aspects.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;We found that for image search criteria, BigQuery-based search was closer to human search comparisons compared to Azure search. While the difference wasn't significant, BigQuery search almost always had a better or closer resemblance to human search results. It's also important to note that both platforms continue to evolve, and these results are subject to change.&lt;/p&gt;

</description>
      <category>googlecloud</category>
      <category>machinelearning</category>
      <category>azure</category>
      <category>llm</category>
    </item>
    <item>
      <title>Gen AI Learnings : Hallucinations and your options</title>
      <dc:creator>KumarAtGIT</dc:creator>
      <pubDate>Wed, 05 Feb 2025 08:07:32 +0000</pubDate>
      <link>https://dev.to/kumartalkstech/gen-ai-learning-hallucinations-and-your-options-5gfg</link>
      <guid>https://dev.to/kumartalkstech/gen-ai-learning-hallucinations-and-your-options-5gfg</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Generative AI has captured the tech world's attention over the past year. As more use cases are evaluated for production implementation, a prevalent challenge we encounter is hallucinations—confident but incorrect answers from large language models (LLMs).&lt;/p&gt;

&lt;p&gt;In this blog, we'll share our real-time experiences with this issue and the various approaches we used to mitigate it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Usecase Details
&lt;/h2&gt;

&lt;p&gt;Our use case involved validating image specifications (Aspect ratio, Dots per Inch (DPI) , ADA compliance, etc.) for a set of images in an automated and foolproof manner. The goal was to use a Generative AI solution to automate all these manual QA validations typically performed on images.&lt;/p&gt;

&lt;h2&gt;
  
  
  Model output and Hallucinations
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;LLM Details&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Gemini 1.5 Flash-002&lt;br&gt;
Temperature: 0&lt;br&gt;
Max Token: 8000&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Request&lt;/strong&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%2F1kpz14yppx21zjnf4ayg.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%2F1kpz14yppx21zjnf4ayg.png" alt="Gemini_Hallucination_UseCase_Request_1" width="800" height="240"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Response&lt;/strong&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%2F45i3bkcluzxg1rwz0qbk.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%2F45i3bkcluzxg1rwz0qbk.png" alt="Gemini_Hallucination_UseCase_Response_1" width="800" height="278"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As you can see the output from Gemini is that Aspect Ratio for the given image is 16:9&lt;/p&gt;

&lt;p&gt;Now we will make a minor tweak to the prompt and check the response again. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Response&lt;/strong&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%2F5ogp24u3xo8uz7mjyqiv.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%2F5ogp24u3xo8uz7mjyqiv.png" alt="Gemini_Hallucination_UseCase_Request_2" width="800" height="338"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The aspect ratio calculation clearly changes even though the prompt details remain largely the same. Repeated requests with this updated prompt also resulted in varying data.&lt;/p&gt;

&lt;p&gt;While this is not unexpected from multimodal models, given their inherently non-deterministic nature, it is surprising to see considerable deviations in output despite minimal changes in the prompt.&lt;/p&gt;

&lt;h2&gt;
  
  
  Mitigation Approaches
&lt;/h2&gt;

&lt;p&gt;1) Switching to a more appropriate model, Gemini Pro results were more consistent for this usecase.&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%2Fmpbdneqpr7xif0nz98vy.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%2Fmpbdneqpr7xif0nz98vy.png" alt="Gemini_Hallucination_UseCase_Request_2" width="800" height="378"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2)Using non-Gen AI options for more definitive answers can be beneficial. While this may not always be feasible, in our case, we were able to utilize the Google Vision API, which provides image dimensions that can be used to calculate the aspect ratio. The result from this API was consistent.&lt;/p&gt;

&lt;h2&gt;
  
  
  Google Vision API
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;**Request **

curl --location 'https://vision.googleapis.com/v1/images:annotate' \
--header 'Authorization: Bearer xrtCDXeO80SlvKKWj6sLgdNy436sb7USzJ2moOwTBZeG6gMxZpSV0w6JbEwXuyxGmtqoIWRaCgYKAeUSARMSFQHGX2Mi2sQxwgSv1wvrw88IXGejbA0427' \
--header 'x-goog-user-project: gcp-sample-02' \
--header 'Content-Type: application/json; charset=utf-8' \
--data '{
  "requests": [
    {
      "features": [
        {
          "maxResults": 10,
          "type": "CROP_HINTS"
        }
      ],
      "image": {
        "source": {
          "imageUri": "https://images.xyz-abc.com/is/image/123/french-bread-pizza-bundle-image-web"
        }
      }
    }
  ]
}

**Response**
{
    "responses": [
        {
            "cropHintsAnnotation": {
                "cropHints": [
                    {
                        "boundingPoly": {
                            "vertices": [
                                {
                                    "x": 20
                                },
                                {
                                    "x": 324
                                },
                                {
                                    "x": 324,
                                    "y": 203
                                },
                                {
                                    "x": 20,
                                    "y": 203
                                }
                            ]
                        },
                        "confidence": 0.6875,
                        "importanceFraction": 0.58285713
                    }
                ]
            }
        }
    ]
}

Aspect Ratio = (x2 -x1)/(y2-y1) = (324-20)/(203-0)=1.49 (Approx)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;It was fascinating to observe how a minor prompt variation can lead to significant output changes from an LLM perspective. Hallucinations remain an active research problem in the Gen AI space. While there are many ways to minimize them (such as tuning model parameters, using the Retrieval-Augmented Generation (RAG) approach, adding guardrails etc), it's important to understand that Gen AI models are inherently non-deterministic by design and will never be completely foolproof against hallucinations. If a solution requires 100% hallucination-proof results, non-Gen AI approaches should also be considered.&lt;/p&gt;

&lt;p&gt;Thank you for reading this blog. I hope these live project experiences will help you build your Gen AI solution to be more hallucination-free, if not entirely foolproof! 😊&lt;/p&gt;

</description>
      <category>ai</category>
      <category>machinelearning</category>
      <category>llm</category>
      <category>rag</category>
    </item>
    <item>
      <title>Priority Processing in Event Driven Architectures: Common Design Patterns</title>
      <dc:creator>KumarAtGIT</dc:creator>
      <pubDate>Wed, 05 Feb 2025 06:37:14 +0000</pubDate>
      <link>https://dev.to/kumartalkstech/priority-processing-in-event-driven-architectures-common-design-patterns-1mg2</link>
      <guid>https://dev.to/kumartalkstech/priority-processing-in-event-driven-architectures-common-design-patterns-1mg2</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Have you ever found yourself working on a design for an Event Driven Architecture (EDA)? You're not alone. More and more solutions are adopting EDA, and one of the challenges you might encounter is how to prioritize messages within such an architecture. It can indeed be a challenge.&lt;/p&gt;

&lt;p&gt;Unlike non-EDA systems, where most of the data is readily available, data in EDA systems is almost always changing, making priority processing a complex task. What may be a priority at a given time T might not hold the same importance at time T+1. In these transient systems, the application processing the messages must adapt and implement some form of priority mechanism. While absolute priority processing may not be feasible in real-time event-driven systems, some level of prioritization can certainly be achieved.&lt;/p&gt;

&lt;p&gt;This blog aims to share some common design patterns for implementing prioritized processing in EDA systems. It focuses on the consumer side of these architectures, as there are often limited or no controls over how messages are produced in a prioritized manner.&lt;/p&gt;

&lt;h2&gt;
  
  
  Approach 1:  Source Separation: Different Sources for Priority vs Non-Priority Messages
&lt;/h2&gt;

&lt;p&gt;It's the most trivial and simplistic implementation which can cater to implementing basic priority in processing records at consumer end. &lt;/p&gt;

&lt;p&gt;Having dedicated input source/topic for priority messages keeps them separate from the bulk of non-priority messages and helps allocating dedicated processing capacity. We can spin up separate instances of consumer for dedicatedly processing priority messages.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;High Level Design&lt;/strong&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%2Fzgmonl428q81wt6efjh5.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%2Fzgmonl428q81wt6efjh5.png" alt="Approach_1_Priority_Vs_NonPriority_Topics" width="800" height="407"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;PRO/CON Analysis&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Simple and Faster Implementation.&lt;/li&gt;
&lt;li&gt;Independent scaling based on traffic patterns for messages based on priority.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Increased implementation complexity due to maintenance and processing from two different sources.&lt;/li&gt;
&lt;li&gt;Producer systems may not support the option of sending messages to two different sources.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Approach 2: Priority Queue: Using In-Memory Prioritization Framework
&lt;/h2&gt;

&lt;p&gt;n systems where separate input sources for different priority messages are not feasible, consumer systems can implement an in-memory prioritization mechanism. A commonly used data structure for this purpose is Priority Queues. This approach allows the consumer system to adjust prioritization criteria according to their needs while simplifying the source system by maintaining a single input source.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;High Level Design&lt;/strong&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%2Foe7gwnbup3m4vumft1en.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%2Foe7gwnbup3m4vumft1en.png" alt="Approach_2_InMemory_Prioritization" width="800" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To optimize Priority Queue implementation and reduce the frequency of re-arranging, records can be read in batches from the input source. In EDA systems using Kafka, this capability is inherently supported by the platform's consumer APIs, with parameters like max.poll.records.&lt;/p&gt;

&lt;p&gt;Time Complexity of Priority Queue&lt;/p&gt;

&lt;p&gt;The time complexity of Priority Queue for insertion(enqueue) and deletion (dequeue) methods, is O(log(n)).&lt;br&gt;
For removal and contains methods, the time complexity is linear. Methods that retrieve elements from the Priority Queue have constant time complexity. By default, Priority Queue elements are naturally ordered. To change the ordering, a comparator can be specified during the creation of the Priority Queue object, which the Priority Queue will then use to order its elements. Several commercial products, such as Redis, offer this feature for reuse.&lt;/p&gt;

&lt;p&gt;Deciding criteria for priority queue implementation&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Based on attribute in incoming payload&lt;/li&gt;
&lt;li&gt;Predefined set of rules which application can implement.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;PRO/CON Analysis&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Relatively simple implementation. In Memory Caching systems like Redis has this supported.&lt;/li&gt;
&lt;li&gt;Prioritization Criteria can be customized at consumer end.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In memory Queue is Vulnerable to System failures. &lt;/li&gt;
&lt;li&gt;It's an additional Hop in system and introduces some additional processing time. &lt;/li&gt;
&lt;li&gt;Additional Overhead for maintaining In-memory queues.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Approach 3:  Database:  Using DB for Storing and Priority Processing
&lt;/h2&gt;

&lt;p&gt;Using databases to store and fetch messages based on priority can be an alternative for systems seeking more robust and scalable prioritization. Leveraging a database for storage ensures that the system can handle failures more reliably. Records can be retrieved based on various prioritization criteria using an SQL interface.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;High Level Design&lt;/strong&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%2Fyx2xy16mlb2ntil6pkw1.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%2Fyx2xy16mlb2ntil6pkw1.png" alt="Approach_3_DB_Storage" width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;PRO/CON Analysis&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Robust failure mechanism handling leveraging DB system.&lt;/li&gt;
&lt;li&gt;High Flexibility in customizing/changing Prioritization Criteria. Prioritization related SQL queries can be stored and updated outside of application scope On-Demand basis.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Additional Overhead with DB. SYNC time between Input Source and DB records may introduce some latency in overall processing.&lt;/li&gt;
&lt;li&gt;Additional Cost implication related to Database.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Implementing priority in real-time event-based systems remains an architectural challenge, and the design patterns discussed above are some general approaches to address this need. Absolute priority implementation is elusive in these systems due to constantly changing data, necessitating some form of time window or slicing to define the scope of prioritization.&lt;/p&gt;

&lt;p&gt;As more systems adopt real-time EDA processing, the demand for priority implementation is growing, and various approaches have evolved across the industry to meet this need. The final choice for any implementation depends on finding the optimal balance between the pros and cons of each approach.&lt;/p&gt;

&lt;p&gt;This blog aimed to share knowledge on possible architectures for priority implementation in real-time event-driven systems, based on my years of industry experience with similar use cases. I hope this provides valuable insights and thought processes for teams and applications with similar needs.&lt;/p&gt;

&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.confluent.io/blog/prioritize-messages-in-kafka/" rel="noopener noreferrer"&gt;https://www.confluent.io/blog/prioritize-messages-in-kafka/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://netflixtechblog.com/timestone-netflixs-high-throughput-low-latency-priority-queueing-system-with-built-in-support-1abf249ba95f" rel="noopener noreferrer"&gt;https://netflixtechblog.com/timestone-netflixs-high-throughput-low-latency-priority-queueing-system-with-built-in-support-1abf249ba95f&lt;/a&gt;&lt;/p&gt;

</description>
      <category>development</category>
      <category>kafka</category>
      <category>eventdriven</category>
      <category>design</category>
    </item>
  </channel>
</rss>
