Skip to content

Instantly share code, notes, and snippets.

View clemensv's full-sized avatar
🏠
Working from home

Clemens Vasters clemensv

🏠
Working from home
View GitHub Profile
<?xml version="1.0" encoding="UTF-8"?>
<catalog xmlns="https://cncf.io/messagecatalog/2022-02"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xlink="http://www.w3.org/1999/xlink">
<!--
This document defines an assumed AMQP binding for a subset of the ISO20022 ATM exchanges for illustrative purposes.
The XSD schema collection is assumed to be located in a folder/resource "catp" in relative to where this document is stored.
{
"specversion": "0.1",
"$schema": "http://cloudevents.io/schemas/messagecatalog.json",
"groups": {
"purchase-order-messages": {
"format": "AMQP",
"description": "Messages for purchase order processing.",
"definitions": {
"purchase-order": {
"authority": "contoso.com",
{
"specversion": "0.1",
"groups": {
"Microsoft.Storage.Blobs": {
"id": "Microsoft.Storage.Blobs",
"authority": "microsoft.com",
"format": "CloudEvents",
"description": "This message group defines messages for the Azure Blob Storage Service",
"definitions": {
"Microsoft.Storage.BlobCreated": {
@clemensv
clemensv / messaging-and-eventing-platforms.md
Created January 5, 2022 14:43
Elements of Messaging and Eventing Platforms
title
Elements of Messaging and Eventing Platforms

This document provides a brief overview of the essential elements of a messaging and eventing platform and how they relate to each other.

Message and Event Broker Categories

@clemensv
clemensv / latency.cs
Created November 15, 2021 13:15
Very simple latency test for event hubs
using System;
namespace event_hubs_latency
{
using System.Collections.Concurrent;
using System.Diagnostics;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Azure.Messaging.EventHubs;

Tenant Bridges

This document defines a mechanism to establish multiplexed, platform-level information flow between the tenant scopes of different, multitenant platform-as-a-service (PaaS) or software-as-a-service (SaaS) systems. In particular, this specification introduces the concept of a tenant-bridging “channel” that is established as a communication link between the tenants of two cooperating platforms. While the mechanism defined here is quite simple, the solved problem requires quite a bit of context setting:

What are we solving?

The "cooperating platforms" are commonly from different cloud service vendors and are addressing different customer scenarios. Examples might be enterprise resource planning (ERP) on one side and general-purpose application hosting on the other. A scenario to enable might be for the ERP system to be easily extensible with event-driven serverless functionality hosted on the other platform.

In such a scenario, it will likely be the same customer organization who is a te

# Apache Qpid Dispatch Router Copy Route for Azure Service Bus
router {
mode: standalone
id: 92787282663929288982
workerThreads: 4
}
log {
module: DEFAULT
{
"openapi": "3.0.2",
"info": {
"title": "AMQP Management",
"version": "1.0"
},
"components": {
"schemas": {
"discovery-document": {
"type": "object",
{
"openapi": "3.0.2",
"info": {
"title": "AMQP Management",
"version": "1.0"
},
"components": {
"schemas": {
"discovery-document": {
"type": "object",
@clemensv
clemensv / sbfifo.md
Last active November 20, 2017 07:16

FIFO in Service Bus

The explantion below is taken out of the context of an internal email exchange, and while we already have product documentation about this topic, this also seemed worth sharing. The email context stated that the customer asked for string First-In-First-Out (FIFO) assurances, but without any specifics about their scenario. Scenarios for hard FIFO requirements are not very common, I might add:

"It’s usually helpful to ask the customer back on exactly why they want they want true in-order delivery, i.e. FIFO, and then look at the use-case.

Service Bus has a specific feature for helping with order assurances, namely Sessions.

Order preservation requires a grouping criterion for the sequence you need ordered, and it needs a mechanism that ensures that messages are delivered to a receiver in that order. That includes not only that the sequence sorting is observed, but that also that no messages go missing b