# Module 11: Microservices Architecture
# Python Dependencies

# ==================================
# Core Web Framework
# ==================================
fastapi==0.104.1
uvicorn[standard]==0.24.0.post1
python-multipart==0.0.6
starlette==0.27.0

# ==================================
# Data Validation & Serialization
# ==================================
pydantic==2.5.0
pydantic[email]==2.5.0
pydantic-settings==2.1.0

# ==================================
# HTTP & Networking
# ==================================
httpx==0.25.1
aiohttp==3.9.1
requests==2.31.0
websockets==12.0

# ==================================
# Database & ORM
# ==================================
# PostgreSQL
asyncpg==0.29.0
psycopg2-binary==2.9.9
sqlalchemy==2.0.23
alembic==1.13.0

# Redis
redis==5.0.1
hiredis==2.2.3
aiocache==0.12.2

# ==================================
# Message Queue
# ==================================
aio-pika==9.3.0
pika==1.3.2
kombu==5.3.4

# ==================================
# Security & Authentication
# ==================================
python-jose[cryptography]==3.3.0
passlib[bcrypt]==1.7.4
cryptography==41.0.7
pyjwt==2.8.0

# ==================================
# Monitoring & Observability
# ==================================
# Metrics
prometheus-client==0.19.0
prometheus-fastapi-instrumentator==6.1.0

# Tracing
opentelemetry-api==1.21.0
opentelemetry-sdk==1.21.0
opentelemetry-instrumentation==0.42b0
opentelemetry-instrumentation-fastapi==0.42b0
opentelemetry-instrumentation-httpx==0.42b0
opentelemetry-instrumentation-sqlalchemy==0.42b0
opentelemetry-instrumentation-redis==0.42b0
opentelemetry-instrumentation-aio-pika==0.42b0
opentelemetry-exporter-otlp==1.21.0
opentelemetry-exporter-jaeger==1.21.0

# Logging
structlog==23.2.0
python-json-logger==2.0.7

# ==================================
# Resilience & Circuit Breaking
# ==================================
tenacity==8.2.3
circuit-breaker-py==0.0.1
py-breaker==0.7.0

# ==================================
# Testing
# ==================================
pytest==7.4.3
pytest-asyncio==0.21.1
pytest-cov==4.1.0
pytest-mock==3.12.0
pytest-timeout==2.2.0
pytest-docker==2.0.1
httpx-mock==0.3.0
faker==20.1.0
factory-boy==3.3.0

# ==================================
# Development Tools
# ==================================
black==23.11.0
isort==5.13.0
flake8==6.1.0
mypy==1.7.1
pylint==3.0.3
bandit==1.7.5
pre-commit==3.5.0

# ==================================
# Documentation
# ==================================
mkdocs==1.5.3
mkdocs-material==9.4.14
mkdocs-mermaid2-plugin==1.1.1

# ==================================
# Utilities
# ==================================
python-dotenv==1.0.0
pyyaml==6.0.1
click==8.1.7
rich==13.7.0
arrow==1.3.0
pendulum==2.1.2

# ==================================
# Data Processing
# ==================================
pandas==2.1.4
numpy==1.26.2
orjson==3.9.10

# ==================================
# Service Mesh & Discovery
# ==================================
consul-py==0.0.1
python-consul==1.1.0
etcd3==0.12.0

# ==================================
# API Documentation
# ==================================
slowapi==0.1.9
fastapi-limiter==0.1.5
fastapi-cache2==0.2.1
fastapi-pagination==0.12.12

# ==================================
# Event Sourcing (Exercise 3)
# ==================================
eventsourcing==9.2.20
aggregate-root==0.1.0

# ==================================
# Additional Exercise 3 Dependencies
# ==================================
# Saga Pattern
saga-py==0.1.0

# gRPC (optional)
grpcio==1.60.0
grpcio-tools==1.60.0

# GraphQL (optional)
strawberry-graphql[fastapi]==0.215.1