How andrewfoxfox/distributedsystems-lab1 works
This repository is a distributed-systems lab example: Part 1 demonstrates durable RabbitMQ work delivery and acknowledgements; Part 2 extends it to an asynchronous text-processing API with persistent status, AI generation, retries, and dead-lettering. The harness is test infrastructure and is omitted. The README content and several source excerpts are unavailable, so the graph shows only relationships supported by the supplied tree and source.
Main entry points: part2_producer.py Processing API · part2_consumer.py AI worker · common.py Queue setup · part1_producer.py Batch producer
Components 10
Part 1 Messaging
- Batch producer
part1_producer.py - Worker consumer
part1_consumer.py
Part 2 Service
- Processing API
part2_producer.py - Result store
part2_store.py - AI worker
part2_consumer.py
Messaging Infrastructure
- Queue setup
common.py - RabbitMQ
Other components
- Message sender
- API client
- Ollama API
Connections 17
- Message sender → Batch producer: starts batch
- Batch producer → Queue setup: connects and sets up
- Queue setup → RabbitMQ: declares queues
- Batch producer → RabbitMQ: publishes jobs
- RabbitMQ → Worker consumer: delivers jobs
- Worker consumer → RabbitMQ: acknowledges
- API client → Processing API: submits text
- Processing API → Result store: records processing
- Processing API → Queue setup: connects and sets up
- Processing API → RabbitMQ: publishes job
- Processing API → Result store: reads result
- Processing API → API client: returns status
- RabbitMQ → AI worker: delivers job
- AI worker → Ollama API: generates response
- AI worker → Result store: records outcome
- AI worker → RabbitMQ: acks or retries
- Queue setup → RabbitMQ: configures dead lettering