In a Delphi/FireDac/SQL setup how do you manage multiple database connections in a RAD way?

Summary This postmortem examines a common database connection management challenge in Delphi/FireDac applications transitioning from SQL Server (with MARS) to PostgreSQL compatibility. The core issue involves multiple concurrent result sets on a single database connection, where the default FireDac behavior conflicts with RAD development patterns that encourage declarative component configuration. The problem manifests when developers … Read more

Spring Data JDBC with Composite ID

Summary Spring Data JDBC does not automatically map composite ID components to their own table columns. When a composite key record (ServiceId) is used as the @Id, Spring Data JDBC expects the table to have a single column named after the ID property (or a custom column mapping). It does not introspect the composite record’s … Read more

Why disposing Utf8JsonWriter leaves file locked and how to fix it

Summary The Utf8JsonWriter you create with new(File.Create(…)) owns the underlying `FileStream, and disposing the writer does not close that stream. The file remains locked, so the subsequent File.OpenRead fails with “the process cannot access the file … because it is being used by another process.” The fix is to also dispose the FileStream (or use … Read more

Deterministic URL Parameters Fix Cache Fragmentation in Perl CGI Systems

Summary A production system experienced cache fragmentation and reduced hit rates due to non-deterministic URL generation. The issue stemmed from a legacy Perl CGI implementation using query_form to construct query strings. Because Perl hashes are unordered collections, the resulting URL parameters were being generated in a different sequence for identical functional requests. This caused HTTP … Read more

Embedding ASCII diagramsin reStructuredText for Sphinx

Summary A documentation workflow bottleneck was identified where engineers required a way to embed ASCII diagrams directly within reStructuredText (RST) files that would automatically render into high-quality graphical assets during the Sphinx build process. The goal was to avoid the overhead of external image files while maintaining the “documentation as code” principle, similar to how … Read more

Javers Audit Failure: Entity vs Value Object Traps

Summary A production audit log failure occurred where Javers failed to record granular property changes for nested objects. Instead of capturing specific field updates (e.g., product.code), the system only reported a change in the identity (ID) of the referenced entity. This resulted in a complete loss of visibility into the actual state changes of downstream … Read more

Mastering Audio Transcription: Optimizing VAD for Real-Time AI Lectures

Summary During the development of a real-time AI lecture-transcription platform, we encountered a significant cost-efficiency and data-integrity bottleneck. The system was transmitting continuous audio streams—including long periods of silence and ambient classroom noise—directly to the transcription and LLM pipeline. This resulted in inflated token consumption, unnecessary backend processing, and degraded summarization quality due to “hallucinated” … Read more