Saturday, 30 April 2022

Correlation ID vs Causation ID

causation or correlation id? - EventStoreDB - Event Store Discuss Forum

From Greg Young:

The are both really simple patterns I have never quite understood why

they end up so misunderstood.

Let's say every message has 3 ids. 1 is its id. Another is correlation
the last it causation.

The rules are quite simple. If you are responding to a message, you
copy its correlation id as your correlation id, its message id is your
causation id.

This allows you to see an entire conversation (correlation id) or to
see what causes what (causation id).

Wednesday, 6 April 2022

Client hangs connecting to the Cosmos DB emulator running as a Linux container

 I had created a docker-compose file for building a full environment which included a Cosmos DB emulator. However I found the client code - running locally on Visual Studio could not connect to the emulator. It would hang indefinitely (even with HTTP request timeouts overriden in the Client Factory).

I ran the emulator as a local service (not containerised) and this worked, indicating a problem specific to the container.

I found the error was the missing environment variable

AZURE_COSMOS_EMULATOR_IP_ADDRESS_OVERRIDE

This is required otherwise the emulator returns an IP address the client cannot connect to.

My docker-compose file now included the following variables:

environment:
      - AZURE_COSMOS_EMULATOR_PARTITION_COUNT=3
      - AZURE_COSMOS_EMULATOR_ENABLE_DATA_PERSISTENCE=true
      - AZURE_COSMOS_EMULATOR_IP_ADDRESS_OVERRIDE=${COSMOS_ADDRESS_OVERRIDE:?IPAddress}