A dynamic 3D illustration of a Priority Queue system in computing. At the bottom, a vast array of futuristic computers forms a grid, with a central towering structure that represents the sending application. From this, digital envelopes adorned with glowing edges, indicative of their priority status, burst forth in an array. High-priority envelopes emit brighter light and are surrounded by visible energy fields, while lower-priority ones have a softer glow. They ascend towards an elaborate, radiant queue structure above, which sorts them before they continue towards their destinations. The background resembles a star-filled night sky, signifying the vastness and complexity of the data processing universe. The overall image conveys a sense of grandeur and high-stakes data management.

The Priority Queue Pattern

The Priority Queue pattern is a pattern that allows us to prioritize requests sent to services so that higher priority requests are received and processed faster than lower priority requests. This is useful for when we are building applications where we need to prioritize some clients over others, or if some requests need to be processed faster than usual for business/compliance reasons. In this article, I’ll talk about what the Priority Queue pattern is, what advantages priority queues can provide, what we need to consider when implementing the Priority Queue pattern and how can implement it priority queues in Azure (Spoiler alert, it’s a little hacky!). ...

January 17, 2024 · 4 min · Will Velida
A conceptual 3D rendering depicting the 'Competing Consumers' model in message processing. Multiple futuristic robotic arms, representing consumers, extend towards a central, glowing digital messaging channel. This channel is overflowing with luminous data messages, illustrating a high volume of information. The robotic arms are engaged in grabbing and processing these messages, symbolizing the concepts of optimizing throughput, enhancing scalability, and distributing workload. The scene is set against a sleek, high-tech backdrop, emphasizing advanced technology and digital processing.

The Competing Consumers Pattern

Applications running in the cloud should expect to handle a large number of requests. One method of dealing with large amounts of requests is to pass them through a message broker to a consumer service that handles these requests asynchronously. This helps ensure that requests are being processed without throttling or degrading the performance of our applications. The volume of these requests can vary over a period of time. Imagine that you’re a developer for an e-commerce website. The traffic you’ll receive during events like Black Friday or Boxing Day sales will be significantly than usual, with requests coming from multiple users that is difficult to predict. During peak hours, you may have to process hundred or thousands of requests per second, while other times demand may be significantly smaller. ...

January 15, 2024 · 5 min · Will Velida
An epic and dramatic 3D visualization of the Retry Storm antipattern in a vast digital landscape. The image showcases a colossal cybernetic storm with intense lightning strikes and powerful whirlwinds, dramatically engulfing a network of futuristic, interconnected systems. These systems are intricately designed with sophisticated geometric shapes and are overwhelmed by an extraordinary number of retry requests, far exceeding the number of stable connections, in a 100:42 ratio. The scene is set against a dark, ominous sky with vibrant electrical effects, emphasizing the catastrophic impact of the antipattern in a high-tech, cyberpunk aesthetic.

The Retry Pattern and Retry Storm Anti-pattern

When developing cloud applications, we’ll be interacting with remote services that can suffer from transient faults. Our applications need to be able to handle transient failures when trying to connect to remote services, and retry a failed operation to improve the stability of your applications. This is where the Retry pattern comes into play. N.B Transient faults are faults that include the momentary loss of network connectivity to components and services, the temporary unavailability of a service, and timeouts that occur when a service is busy. ...

January 15, 2024 · 7 min · Will Velida
A 3D digital illustration in wide format depicting a data management concept. In the center, a large envelope labeled 'CLAIM CHECK' radiates with a blue glow and hovers above a futuristic messaging platform, symbolizing its delivery. To the right, a cube marked 'PAYLOAD' is connected to the platform via a glowing orange data stream, representing its storage in an external service. On the left, an abstract device represents the splitting of the message into the claim check and payload. The background features a network of lines and nodes, suggestive of a high-tech data transfer system.

The Claim-Check Pattern (reference-based messaging)

The Claim-Check pattern, or Reference-Based Messaging, is a pattern where we split a large message into a claim check and a payload. The claim check is sent to our message broker and the payload will be stored in an external data store. This pattern enables us to process large messages, while preventing our message bus from being overloaded and prevent our client applications slowing down. We can also reduce costs with this pattern, but utilizing cheap storage alternatives rather than increasing the resource units used by our message broker. ...

January 13, 2024 · 4 min · Will Velida
Improving Azure AI Search results with semantic search

Improving Azure AI Search results with semantic search

In Azure AI Search, semantic ranking improves our searches by using language understanding to rerank search results. Semantic search is a collection of query capabilities that improve the quality of search results using text-based queries. Using semantic search we can: Improve Search Results by adding a ranking over initial search results using advanced algorithms that consider the context and meaning of the query, resulting in more relevant search outcomes. Provides Additional Information by extracting and displaying captions and answers from search results, which can be used to improve the user’s search experience. In this article, we’ll talk a little about Semantic Search is in Azure AI Search, its advantages and limitations, how to set it up in Azure AI search, and how we can perform semantic searches using C#. ...

January 4, 2024 · 10 min · Will Velida