feat: add notification microservices and transactional outbox
هذا الالتزام موجود في:
37
.env.example
37
.env.example
@@ -81,6 +81,43 @@ QUEUE_DEFAULT_BACKOFF_MS=1000
|
||||
QUEUE_REMOVE_ON_COMPLETE=true
|
||||
QUEUE_WORKER_CONCURRENCY=5
|
||||
|
||||
# Phase 1 microservice routing (false keeps the current in-process path)
|
||||
NOTIFICATION_SERVICE_ENABLED=false
|
||||
# The polling dispatcher is independently disabled for the current production monolith.
|
||||
OUTBOX_DISPATCHER_ENABLED=false
|
||||
OUTBOX_POLL_INTERVAL_MS=1000
|
||||
OUTBOX_BATCH_SIZE=25
|
||||
OUTBOX_MAX_ATTEMPTS=8
|
||||
OUTBOX_LEASE_TIMEOUT_MS=60000
|
||||
OUTBOX_RETRY_BASE_MS=1000
|
||||
OUTBOX_RETRY_MAX_MS=60000
|
||||
# Local development only. Production must inject non-guest credentials and TLS/amqps.
|
||||
RABBITMQ_URL=amqp://guest:guest@127.0.0.1:5672
|
||||
RABBITMQ_HOST=127.0.0.1
|
||||
RABBITMQ_PORT=5672
|
||||
RABBITMQ_USERNAME=
|
||||
RABBITMQ_PASSWORD=
|
||||
RABBITMQ_VHOST=/
|
||||
RABBITMQ_TLS_ENABLED=false
|
||||
RABBITMQ_TLS_REQUIRED=true
|
||||
RABBITMQ_CA_CERT_BASE64=
|
||||
RABBITMQ_CA_CERT_PATH=
|
||||
RABBITMQ_CLIENT_CERT_BASE64=
|
||||
RABBITMQ_CLIENT_CERT_PATH=
|
||||
RABBITMQ_CLIENT_KEY_BASE64=
|
||||
RABBITMQ_CLIENT_KEY_PATH=
|
||||
RABBITMQ_TLS_REJECT_UNAUTHORIZED=true
|
||||
RABBITMQ_SERVERNAME=
|
||||
RABBITMQ_HEARTBEAT_SECONDS=10
|
||||
RABBITMQ_RECONNECT_SECONDS=5
|
||||
RABBITMQ_CONNECTION_TIMEOUT_MS=10000
|
||||
NOTIFICATION_RPC_TIMEOUT_MS=3000
|
||||
NOTIFICATION_RPC_RETRIES=1
|
||||
NOTIFICATION_CIRCUIT_FAILURE_THRESHOLD=3
|
||||
NOTIFICATION_CIRCUIT_RESET_MS=15000
|
||||
NOTIFICATION_SERVICE_PORT=4001
|
||||
NOTIFICATION_RMQ_PREFETCH=10
|
||||
|
||||
STORAGE_PROVIDER=local
|
||||
MEDIA_ACCESS_MODE=direct
|
||||
STORAGE_BASE_PATH=uploads
|
||||
|
||||
المرجع في مشكلة جديدة
حظر مستخدم