Your source of geek knowledge


Latest stories

Azure Service Bus .NET SDK Deep Dive – Expiry


Explains how messages can expire by associating a time to live with the message, for more posts in this series go to Contents. There are multiple ways of how messages can “disappear” from a queue. The most obvious one is that a message in the queue was received by a client and successfully acknowledged. There is another one that might be not that obvious and can even be leveraged to create clever designs: It is called message expiry or time to live. If not specified otherwise...

Azure Service Bus .NET SDK Deep Dive – Scheduling


Explains scheduling of messages into the future, for more posts in this series go to Contents. What if we could write a letter to our future self? It turns out with Azure Service Bus we can! With the SDK, it is possible to schedule a message to be due at a certain point in time, and the broker will make sure to deliver it back into the queue when the date is due. With that trick, we can store durable timeouts on the broker to kill our batch jobs or implement things like invoice reminders. var...

Azure Service Bus .NET SDK Deep Dive – Connections


Explains connections and how they relate to senders and receivers, for more posts in this series go to Contents. So far, we’ve been creating QueueClients to send and receive messages. We’ve also learned that we can leverage MessageSenders and MessageReceivers to abstract our code slightly from the actual entity in use. The below code illustrates a small example that sends a message to a destination and then receives a single message from that destination. var sender = new...

Azure Service Bus .NET SDK Deep Dive – Sender, receiver and abstractions


Explains senders, receivers and the abstract types, for more posts in this series go to Contents. So far we have been using QueueClient both for sending messages to a queue as well as receiving messages from a queue. The Azure Service Bus SDK has multiple concrete types that allow to operate with a specific entity. The QueueClient allows to interact with the abilities of a queue. If we want to leverage code that interacts with topics (more about those later) we can create a TopicClient. For...

Azure Service Bus .NET SDK Deep Dive – Receiving a message


Explains receiving a message from a queue, for more posts in this series go to Contents. In the previous post I showed the basic bits to send a message into a queue. But how can we get it out again? The good news is that the SDK makes it pretty simple to fetch a message from a queue. We can register a message handler delegate on the queue client. The delegate is automatically called when a message arrives in the queue we are listening to. client.RegisterMessageHandler( async (message, token)...

Azure Service Bus .NET SDK Deep Dive – Sending a message


Explains send a message to a queue, for more posts in this series go to Contents. In the previous post we looked at how queues can be created with the management client. For being able to send messages to queues we required the Microsoft.Azure.ServiceBus package. If you search for Azure Service Bus on nuget you might stumble over the WindowsAzure.ServiceBus package, be aware that this is the old and new legacy Azure Service Bus client. For any new development you want to use the Microsoft.Azure...

Azure Service Bus .NET SDK Deep Dive – Creating queues


Explains how to create queues with the management client, for more posts in this series go to Contents. Without queues, topics and subscriptions (also called entities) there is not much we can do with an Azure Service Bus namespace. For the start it is sufficient enough to create a queue that we will use to send messages to and receive messages from. Creating entities requires a reference to the Microsoft.Azure.Management.ServiceBus package. In contrast to the older (new legacy Azure Service...

Azure Service Bus .NET SDK Deep Dive – Content


In this post series I’m going to dive into the Azure Service Bus .NET SDK and how you can leverage its capabilities to create robust and reliable code that access Azure Service Bus. This series will cover Content Creating queues Sending a message Receiving a message Sender, Receivers and abstractions Connections Scheduling Expiry Deadlettering Forwarding Publish / Subscribe with Topics Topologies Atomic Sends Sender side batching Send Via TransferDLQ Runtime Information Sessions Message...

Software Architecture in the agile World – Part 9: Summary


These are the slides with some notes from my talk about software architecture when developing in an agile way. Contents Let’s look back at the workflow Max and his team used to build a solution to their problem. First, they invested in problem understanding so that they then could decompose the problem into almost independent subproblems. Finding solutions to the subproblems and composing these together into a solution for the whole problem were the next iterative steps. Once a consistent...

Recent Posts