Mini enterprise backend project built to simulate a modern corporate environment using event-driven architecture, cloud integrations, containerization, and observability concepts.
This project demonstrates how modern backend systems work in real-world companies using:
- Event-driven communication
- Asynchronous processing
- Cloud-native concepts
- Structured logging
- Containerized services
- Monitoring and observability
The application receives document requests through a REST API, publishes events to Kafka, processes them asynchronously, stores generated files in S3, and exposes metrics for monitoring.
Client
↓
FastAPI API
↓
Kafka Producer
↓
Kafka Topic
↓
Kafka Consumer
↓
Document Processing
↓
S3 Storage / Retry Queue
↓
Logs + Metrics
- Python 3.12
- FastAPI
- Pydantic
- Apache Kafka
- Kafka Producer/Consumer
- AWS S3
- AWS SQS (simulated locally)
- LocalStack
- Docker
- Docker Compose
- Structured JSON Logging
- Prometheus Metrics
- REST API with FastAPI
- Healthcheck endpoint
- Metrics endpoint
- Request validation
- Structured error handling
- Kafka producer
- Kafka consumer
- Asynchronous processing
- Retry flow simulation
- S3 file upload
- SQS simulation
- Environment-based configuration
- Structured logs
- Request tracing
- Basic metrics
- Monitoring-ready architecture
event-driven-document-processor/
│
├── app/
│ ├── api/
│ ├── consumers/
│ ├── producers/
│ ├── services/
│ ├── models/
│ ├── core/
│ ├── config/
│ └── main.py
│
├── tests/
├── docker/
├── logs/
│
├── Dockerfile
├── docker-compose.yml
├── requirements.txt
├── .env
└── README.md
POST /documentsExample payload:
{
"document_id": "123",
"document_type": "invoice"
}The API publishes a message to a Kafka topic.
The consumer:
- Reads the event
- Simulates document processing
- Generates logs
- Uploads result to S3
Monitoring endpoints:
/health/metrics
- Docker
- Docker Compose
- Python 3.12
git clone https://github.com/braulioti/event-driven-document-processor.gitdocker compose up --build- FastAPI API
- Kafka
- Zookeeper
- LocalStack
- Prometheus (future)
- Grafana (future)
This project was created to practice:
- FastAPI
- Docker
- Kafka/Event-driven systems
- AWS integrations
- Cloud-native architecture
- Observability concepts
- Corporate backend patterns
- Kubernetes deployment
- CI/CD pipelines
- DynamoDB integration
- Distributed tracing
- Authentication and authorization
- Terraform infrastructure
- Grafana dashboards
Developed as a backend engineering practice project focused on modern enterprise architecture patterns.