How azure-samples/cloud-design-patterns works
This repository is a collection of Azure cloud design-pattern samples, not one end-to-end application. The graph emphasizes the demonstrated request/reply, claim-check, leader-election, image-pipeline, priority-queue, and valet-key workflows. Several source files are represented by their tree names only, so uncertain internal wiring is omitted. README-listed choreography, sharding, and static-content samples are not present in the supplied tree.
Main entry points: ValetKey.Client/Program.cs Valet-key client · ClientProducer4/Program.cs Sample producer · PriorityQueueSenderFn.cs Priority sender · AsyncProcessingWorkAcceptor.cs Work acceptor
Components 29
Async request-reply
- Work acceptor
async-request-reply/src/AsyncProcessingWorkAcceptor.cs - Background worker
async-request-reply/src/AsyncProcessingBackgroundWorker.cs - Status checker
async-request-reply/src/AsyncOperationStatusChecker.cs - Blob extensions
async-request-reply/src/CloudBlockBlobExtensions.cs - Customer data
async-request-reply/src/CustomerPOCO.cs
Claim check
- Sample producer
claim-check/code-samples/sample-4/ClientProducer4/Program.cs - Payload mover
claim-check/code-samples/sample-4/ClientProducer4/SampleBlobDataMover.cs - Kafka producer
claim-check/code-samples/sample-4/ClientProducer4/SampleKafkaProducer.cs - Event consumer
claim-check/code-samples/sample-2/ClientConsumer2/EventHubsConsumer.cs - Function consumers
claim-check/code-samples
Leader election
- Leader worker
leader-election/LeaderElectionConsoleWorker/Program.cs - Distributed mutex
leader-election/DistributedMutex/BlobDistributedMutex.cs - Blob lease manager
leader-election/DistributedMutex/BlobLeaseManager.cs
Image pipeline
- Resize filter
pipes-and-filters/ImageProcessingPipeline/Resize.cs - Watermark filter
pipes-and-filters/ImageProcessingPipeline/Watermark.cs - Publish final
pipes-and-filters/ImageProcessingPipeline/PublishFinal.cs
Queue and valet
- Priority sender
priority-queue/PriorityQueueSender/PriorityQueueSenderFn.cs - Priority data
priority-queue/PriorityQueueSender/Priority.cs - High-priority consumer
priority-queue/PriorityQueueConsumerHigh/PriorityQueueConsumerHighFn.cs - Low-priority consumer
priority-queue/PriorityQueueConsumerLow/PriorityQueueConsumerLowFn.cs - Valet-key client
valet-key/ValetKey.Client/Program.cs - Valet-key service
valet-key/ValetKey.Web/FileServices.cs
Other components
- Requesting client
- Azure Blob Storage
- Event Hubs
- Lease blob
- Image input
- Azure Service Bus
- Upload client
Connections 22
- Requesting client → Work acceptor: submits work
- Work acceptor → Background worker: queues work
- Requesting client → Status checker: checks status
- Sample producer → Payload mover: uploads payload
- Payload mover → Azure Blob Storage: writes payload
- Sample producer → Kafka producer: sends claim
- Kafka producer → Event Hubs: publishes message
- Event Hubs → Event consumer: delivers message
- Event Hubs → Function consumers: triggers consumers
- Leader worker → Distributed mutex: runs lease task
- Distributed mutex → Blob lease manager: acquires lease
- Blob lease manager → Lease blob: renews lease
- Image input → Resize filter: starts processing
- Resize filter → Watermark filter: passes image
- Watermark filter → Publish final: passes image
- Priority sender → Priority data: sets priority
- Priority sender → Azure Service Bus: sends message
- Azure Service Bus → High-priority consumer: dispatches high
- Azure Service Bus → Low-priority consumer: dispatches low
- Upload client → Valet-key client: requests upload
- Valet-key client → Valet-key service: requests SAS
- Valet-key client → Azure Blob Storage: uploads directly