feat: Add Azure Queue Storage seedwork with type-safe operations and blob audit logging#161
Draft
feat: Add Azure Queue Storage seedwork with type-safe operations and blob audit logging#161
Conversation
…alidation, and blob logging
- Create type-safe queue message infrastructure with generic envelopes
- Implement BaseQueueSender with automatic validation and blob logging
- Implement BaseQueueReceiver with message processing and blob logging
- Add MessageLogger for automatic audit trail to blob storage
- Add SchemaValidator with AJV for runtime type validation
- Add OpenTelemetry tracing integration
- Include comprehensive README and usage examples
- Add unit tests for schema validator
- Update pnpm workspace catalog with Azure SDK versions
Blob logging structure:
- Outbound: queue-messages/outbound/{timestamp}.json
- Inbound: queue-messages/inbound/{timestamp}.json
- Metadata/tags: queue name, direction, message ID, custom tags
Supports:
- Type-safe generic payloads
- Correlation IDs for distributed tracing
- Custom metadata per message
- Configurable blob logging per queue
- Local development with Azurite emulator
Part of: Azure Queue Storage support implementation
See: QUEUE_STORAGE_IMPLEMENTATION_SUMMARY.md for full implementation plan
Copilot
AI
changed the title
[WIP] Add Azure Queue Storage support in Cellix framework
feat: Add Azure Queue Storage seedwork with type-safe operations and blob audit logging
Feb 6, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview
Implements Phase 1 of Azure Queue Storage support: foundational
@cellix/queue-storage-seedworkpackage providing type-safe queue operations with automatic blob audit logging and JSON schema validation.Remaining phases (service integration, Cellix API extension, PoCs) detailed in
QUEUE_STORAGE_IMPLEMENTATION_SUMMARY.md.Implementation
Type-Safe Message Infrastructure
Generic message envelope with strict typing throughout—no
anytypes:Base Queue Operations
BaseQueueSender
queue-messages/outbound/{ISO8601-timestamp}.jsonBaseQueueReceiver
queue-messages/inbound/{ISO8601-timestamp}.jsonBlob Audit Logging
Fire-and-forget pattern ensures logging doesn't block queue operations. Each blob includes:
Schema Validation
AJV-based validation with per-queue schema registration:
Usage
Local Development
Azurite emulator support with default connection string documented in README.
Dependencies
@azure/storage-queue@^12.26.0@azure/storage-blob@^12.25.0@opentelemetry/api@^1.9.0ajv@^8.17.1Next Steps
See
QUEUE_STORAGE_IMPLEMENTATION_SUMMARY.mdfor Phases 2-6:@ocom/service-queue-storage)Estimated 8-13 hours to complete.
Original prompt
This section details on the original issue you should resolve
<issue_title>Implement Azure Queue Storage support in Cellix with type-safe, logged queue sender/receiver and proof-of-concept</issue_title>
<issue_description>## Overview
The Cellix framework must provide robust, first-class support for Azure Queue Storage, enabling reusable queuing and logging for distributed communications between services. This work introduces foundational packages and application integration—including legacy-based queue sender/receiver abstractions, application-configurable service registration, and functional business examples.
Built-in Logging to Blob Storage
queue-messages:queue-messages/outbound/queue-messages/inbound/2026-02-07T14:42:03.123Z.jsonImplementation expectations (legacy parity + improvements)
@cellix/queue-storage-seedworkmust enforce proper type safety using generic typings and runtime guarantees:anyfor generic queue message/payload plumbing.unknown+ validation + typed narrowing where needed.Deliverables & Structure
1)
@cellix/queue-storage-seedworkCreate a new framework seedwork package containing reusable queue storage infrastructure code:
queue-messages, withinbound/andoutbound/).2)
@ocom/service-queue-storageCreate an Owner Community application-specific package that:
@cellix/queue-storage-seedwork.3) Extend Cellix fluent startup API to support queue triggers
In
@ocom/api(and/or Cellix core where appropriate), expose a fluent, chained startup API to register Azure Functions queue handlers similarly to how HTTP handlers are registered today.Proof-of-concept scenarios (MUST be implemented in Owner Community)
These examples are required to prove the design works with what is already functional in the repo and to provide contributors a working reference.
Outbound queue example:
community-createdCommunityCreatedEvent(already firing in the domain) must send a queue message to the outbound queuecommunity-created.communityId,name,createdAt, etc.).queue-messages/outbound/with configured tags/metadataInbound queue example:
membermemberthat accepts a payload:memberId: string(required; objectId)💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.