Skip to content

Instantly share code, notes, and snippets.

View lmolkova's full-sized avatar

Liudmila Molkova lmolkova

View GitHub Profile
@lmolkova
lmolkova / settlement.md
Last active January 18, 2024 17:12
Settlement messaging conventions

Settlement in messaging systems

Proposal

Attributes:

  • is there a need in generic?
  • messaging.settlement.settled: boolean

System-specific:

  • messaging.kafka.committed.offset
  • messaging.rabbitmq.ack.type, messaging.rabbitmq.ack.delivery_tag

Azure SDK for Java: tracing changes

Motivation

  • Improve API usability for SB/EH
  • Allow explicit configuration
  • GA tracing plugin

Usage scenarios

End-users

@lmolkova
lmolkova / per-message-properties.md
Last active August 25, 2022 15:02
Per-message properties in messaging systems

Based on:

  • AMQP
    • General
    • Azure ServiceBus AMQP extensions
    • Azure EventHubs AMQP extensions
  • JMS
  • Kafka
  • RabbitMQ
@lmolkova
lmolkova / amqp_metrics.md
Last active January 6, 2023 23:36
Azure SDK metrics: conventions
@lmolkova
lmolkova / messaging_notes.md
Last active July 21, 2022 16:11
Messaging: destination name and server name availability
@lmolkova
lmolkova / metrics_azure_sdk.md
Last active February 22, 2024 02:57
Metrics in Azure SDK for Java

Metrics in Azure SDK for Java

The immediate goal is to report metrics from Azure messaging SDKs (EventHubs and ServiceBus) to help customers detect and investigate configuration issues, performance bottlenecks, application and SDK bugs.

It can be broken down into smaller goals:

  • define metrics essential for messaging scenarios
  • define Metrics API in azure-core
  • metrics plugin implementations
@lmolkova
lmolkova / quarkus_and_micronaut_configuration.md
Last active March 5, 2022 04:33
Configuration beyond Spring

Quarkus configuration

Quarkus configuration is very similar to Spring:

  • supports application.properties and application.yaml
  • conventions on property names are the same: '.' as separator, kebab-case.
  • supports property sources, iterating over them and getting value by name programmatically or with annotation

What's different:

  • Quarkus uses smallrye-config which is implementation of microprofile-config. Annotation and feature-wise, it's similar to spring, but more explicit (reflection is discouraged)
  • Property metadata can be extended with microprofile language-server extension (example)
@lmolkova
lmolkova / azure-sdk-for-java-config-usage.md
Last active January 26, 2022 01:02
New configuration in Azure SDK for Java
  • SDKs expose IAzureClientBuilder<EventHubProducerClient, EventHubProducerClientOptions> AddEventHubProducerClient<TBuilder, TConfiguration>(this TBuilder builder, TConfiguration configuration) where TBuilder : IAzureClientFactoryBuilderWithConfiguration<TConfiguration>

    • Configuration format and binding to options are not defined in Azure SDKs
  • Implementation lives in Microsoft.Extensions.Azure

    • binding to options is done by microsoft.extensions.configuration through IConfiguration.Bind() and relies on *Options following microsoft.extensions.configuration conventions (i.e. properties)
    • options sources are whatever microsoft.extensions.configuration supports:
  • Config

@lmolkova
lmolkova / configuration_azure_sdk.md
Last active January 13, 2022 20:29
Configuration in Azure SDK for Java