---
title: "Changelog 3.14.0"
description: "Release notes for ArchiPy 3.14.0"
---

# 3.14.0 — 2025-10-26

[← 3.14.1](3.14.1.md) | [3.13.10 →](3.13.10.md) | [↑ 3.x series](index.md)

## Added

### gRPC Application Creation Utilities

- **gRPC App Creation** - Added comprehensive gRPC application creation utilities for both sync and async servers
    - Added `AppUtils.create_async_grpc_app()` method for async gRPC server creation with interceptor support
    - Added `AppUtils.create_grpc_app()` method for synchronous gRPC server creation
    - Implemented automatic setup of exception, tracing, and metric interceptors
    - Added `GrpcAPIUtils` class with setup methods for trace and metric interceptors for sync gRPC servers
    - Added `AsyncGrpcAPIUtils` class with setup methods for trace and metric interceptors for async gRPC servers
    - Integrated Prometheus metric collection with configurable HTTP server port
    - Enhanced optional import handling for gRPC dependencies with proper graceful degradation
    - Configured ThreadPoolExecutor with configurable worker count and server options
    - Support for custom interceptors and compression settings

### Prometheus Metrics Support

- **Metric Collection** - Added Prometheus metrics integration for gRPC servers
    - Automatic metric interceptor setup when Prometheus is enabled in configuration
    - Configurable HTTP server for metrics endpoint exposure
    - Integrated metric collection for both sync and async gRPC servers
    - Enhanced observability with automatic Prometheus client initialization

## Changed

### Kafka Producer Enhancements

- **Key Parameter Support** - Enhanced Kafka producer with proper key encoding support
    - Added optional `key` parameter to `KafkaProducerPort.produce()` method signature
    - Implemented proper UTF-8 encoding for message keys using `_pre_process_message()` helper
    - Ensures consistent handling of both string and bytes keys in message production
    - Improved key/value consistency in Kafka message production workflow

### Cache Decorator Optimization

- **Lazy Import Optimization** - Optimized TTL cache decorator import strategy
    - Moved `cachetools.TTLCache` import inside the decorator function to prevent global import issues
    - Improved module initialization performance by avoiding heavy dependencies at import time
    - Maintained backward compatibility while improving startup time
    - Enhanced import cleanliness and reduced initialization overhead

## Fixed

### Kafka Producer Key Processing

- **Key Encoding Fix** - Fixed issue where message keys were not being properly processed
    - Applied `_pre_process_message()` to key parameter in `produce()` method for proper encoding
    - Corrected key handling to match message value processing behavior
    - Resolved potential encoding errors when using string keys in Kafka message production
    - Enhanced BDD test coverage with proper key verification scenarios

### Import Cleanup

- **Module Organization** - Improved import structure across multiple modules
    - Fixed unnecessary imports in Keycloak and MinIO adapters
    - Enhanced import cleanup in decorators module
    - Improved code organization and reduced import overhead
