Fix build and code structure improvements. New but essential UI functionality. CI improvements. Documentation improvements. AI module improvements.
This commit is contained in:
@@ -0,0 +1,185 @@
|
||||
# Notification Service Microservice Configuration
|
||||
# This file configures the service runtime behavior for multi-transport notification delivery
|
||||
|
||||
service:
|
||||
name: notification-service
|
||||
version: 1.0.0
|
||||
region: us-east-1
|
||||
description: "Multi-channel notification service with templates, broadcast, and real-time streaming"
|
||||
|
||||
# Connection to router gateways
|
||||
routers:
|
||||
# Primary TCP connection for synchronous request/response
|
||||
- host: localhost
|
||||
port: 5100
|
||||
transport: tcp
|
||||
priority: 1
|
||||
options:
|
||||
keepAlive: true
|
||||
connectTimeout: 5s
|
||||
sendTimeout: 30s
|
||||
receiveTimeout: 300s
|
||||
|
||||
# RabbitMQ for reliable async messaging and queuing
|
||||
- host: localhost
|
||||
port: 5672
|
||||
transport: rabbitmq
|
||||
priority: 2
|
||||
options:
|
||||
virtualHost: /
|
||||
prefetchCount: 50
|
||||
exchange: stellaops.notifications
|
||||
exchangeType: topic
|
||||
deadLetterExchange: stellaops.notifications.dlx
|
||||
autoRecovery: true
|
||||
recoveryInterval: 5s
|
||||
|
||||
# UDP for broadcast notifications (one-way)
|
||||
- host: localhost
|
||||
port: 5201
|
||||
transport: udp
|
||||
priority: 3
|
||||
options:
|
||||
broadcast: true
|
||||
multicastGroup: 239.255.0.1
|
||||
|
||||
# Health and lifecycle
|
||||
health:
|
||||
heartbeatInterval: 10s
|
||||
healthCheckPath: /health
|
||||
readinessCheckPath: /ready
|
||||
livenessCheckPath: /live
|
||||
|
||||
# Reconnection behavior
|
||||
resilience:
|
||||
initialBackoff: 1s
|
||||
maxBackoff: 60s
|
||||
maxRetries: -1 # Infinite retries
|
||||
circuitBreaker:
|
||||
enabled: true
|
||||
failureThreshold: 5
|
||||
successThreshold: 2
|
||||
timeout: 30s
|
||||
|
||||
# Priority queue configuration
|
||||
priorityQueues:
|
||||
enabled: true
|
||||
levels:
|
||||
critical: 4
|
||||
high: 3
|
||||
normal: 2
|
||||
low: 1
|
||||
routing:
|
||||
critical:
|
||||
transport: rabbitmq
|
||||
queue: notifications.critical
|
||||
ttl: 5m
|
||||
high:
|
||||
transport: tcp
|
||||
queue: notifications.high
|
||||
ttl: 15m
|
||||
normal:
|
||||
transport: tcp
|
||||
queue: notifications.normal
|
||||
ttl: 1h
|
||||
low:
|
||||
transport: rabbitmq
|
||||
queue: notifications.low
|
||||
ttl: 24h
|
||||
|
||||
# Rate limiting
|
||||
rateLimiting:
|
||||
enabled: true
|
||||
defaultLimit: 1000
|
||||
windowSize: 1h
|
||||
perUser:
|
||||
enabled: true
|
||||
limit: 100
|
||||
windowSize: 1h
|
||||
perChannel:
|
||||
sms: 10
|
||||
email: 50
|
||||
push: 200
|
||||
inApp: 1000
|
||||
|
||||
# Batch processing configuration
|
||||
batch:
|
||||
maxBatchSize: 1000
|
||||
batchTimeout: 5s
|
||||
parallelism: 10
|
||||
retryPolicy:
|
||||
maxAttempts: 3
|
||||
backoff: exponential
|
||||
initialDelay: 1s
|
||||
maxDelay: 30s
|
||||
|
||||
# Logging
|
||||
logging:
|
||||
level: Information
|
||||
format: json
|
||||
includeScopes: true
|
||||
maskedFields:
|
||||
- password
|
||||
- apiKey
|
||||
- token
|
||||
- phoneNumber
|
||||
|
||||
# Metrics
|
||||
metrics:
|
||||
enabled: true
|
||||
prefix: notification_service
|
||||
labels:
|
||||
environment: development
|
||||
histogramBuckets:
|
||||
delivery_latency_ms: [10, 50, 100, 250, 500, 1000, 2500, 5000, 10000]
|
||||
counters:
|
||||
- notifications_sent_total
|
||||
- notifications_failed_total
|
||||
- notifications_delivered_total
|
||||
- broadcasts_completed_total
|
||||
|
||||
# Template configuration
|
||||
templates:
|
||||
directory: templates
|
||||
cacheEnabled: true
|
||||
cacheTtl: 5m
|
||||
supportedLocales:
|
||||
- en
|
||||
- es
|
||||
- fr
|
||||
- de
|
||||
- it
|
||||
- pt
|
||||
- ja
|
||||
- zh
|
||||
- ko
|
||||
- ru
|
||||
defaultLocale: en
|
||||
|
||||
# Delivery channel configuration
|
||||
channels:
|
||||
inApp:
|
||||
enabled: true
|
||||
ttl: 30d
|
||||
email:
|
||||
enabled: true
|
||||
provider: smtp
|
||||
fromAddress: noreply@example.com
|
||||
replyToAddress: support@example.com
|
||||
sms:
|
||||
enabled: true
|
||||
provider: twilio
|
||||
maxLength: 160
|
||||
push:
|
||||
enabled: true
|
||||
providers:
|
||||
- fcm
|
||||
- apns
|
||||
webhook:
|
||||
enabled: true
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
slack:
|
||||
enabled: false
|
||||
teams:
|
||||
enabled: false
|
||||
Reference in New Issue
Block a user