A playground for distributed systems, event-driven architecture, and backend experiments.
QueueAndPray is my engineering sandbox.
It is not a production-ready application and intentionally has no business domain.
The goal of this repository is to experiment with architectural patterns, infrastructure components, and distributed system concepts in isolation before applying them to real-world projects.
Think of it as my personal backend laboratory.
Some concepts are difficult to understand from articles alone.
I prefer implementing them myself, breaking them, fixing them, and documenting the trade-offs.
This repository exists exactly for that purpose.
The project will gradually include experiments with topics such as:
- Event-Driven Architecture
- Messaging
- RabbitMQ
- Redis Streams
- Kafka (later)
- CQRS
- Event Sourcing
- Saga Pattern
- Outbox Pattern
- Inbox Pattern
- Idempotency
- Background Processing
- Distributed Locks
- Retry Policies
- Dead Letter Queues
- Eventually Consistent Workflows
- Horizontal Scaling
- Observability
- OpenTelemetry
- Docker
- Integration Testing
Not every experiment will stay. Some ideas may be replaced as I learn better approaches.
This repository intentionally prioritizes:
- learning
- experimentation
- architecture
- infrastructure
- trade-off analysis
over
- business features
- UI
- production completeness
Expect breaking changes.
Expect unfinished ideas.
Expect weird experiments.
That's the point.
🚧 Work in progress
The repository evolves continuously as I study distributed systems and backend architecture.
- .NET
- ASP.NET Core
- Docker
- PostgreSQL
- Redis
- RabbitMQ
- xUnit
- Testcontainers (planned)
This project helps me gain hands-on experience with concepts that are commonly discussed in senior and software architect roles.
Instead of reading about patterns, I implement them.
Sometimes they work.
Sometimes I pray.
Hence the name.
"Theory is where everything works and nobody knows why.
Practice is where everything breaks and nobody knows why.
QueueAndPray is somewhere in between."