-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.batch_example
More file actions
96 lines (83 loc) · 3.62 KB
/
.env.batch_example
File metadata and controls
96 lines (83 loc) · 3.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# ===================================================================
# Configuration PubSub Server avec Batch Writing Optimization
# ===================================================================
# Database Configuration
# ----------------------
DATABASE_FILE=pubsub.db
MAX_ROWS_PER_TABLE=5000
# Cleanup Configuration
# ---------------------
CLEANUP_INTERVAL=30 # Secondes entre chaque vérification de nettoyage
CLEANUP_MAX_LOAD_THRESHOLD=10.0 # Requêtes/seconde max pour autoriser le nettoyage
CLEANUP_LOAD_WINDOW=60 # Fenêtre d'observation de la charge en secondes
# Batch Writing Configuration
# ----------------------------
# Active/désactive le système de batch writing (true/false)
BATCH_WRITE_ENABLED=true
# Nombre d'opérations à accumuler avant flush automatique
# Plus élevé = meilleur throughput, plus haute latency
# Recommandé: 100-500 pour trading haute fréquence
BATCH_SIZE=100
# Intervalle de flush temporel en millisecondes
# Latence maximale avant que les writes soient persistés
# Recommandé: 50-100ms pour trading algorithmique
BATCH_FLUSH_INTERVAL_MS=50
# Taille maximale du buffer en nombre d'opérations
# Protection contre OOM en cas de pic de charge
# Si le buffer est plein, un flush forcé est déclenché
BATCH_MAX_BUFFER_SIZE=10000
# ===================================================================
# Profils de Configuration Pré-définis
# ===================================================================
# PROFIL 1: ULTRA-HIGH THROUGHPUT (Trading Multi-Market)
# --------------------------------------------------------
# BATCH_SIZE=500
# BATCH_FLUSH_INTERVAL_MS=100
# BATCH_MAX_BUFFER_SIZE=50000
# Caractéristiques:
# - Throughput: 50K+ msg/s
# - Latency P99: ~200ms
# - Utilisation: Systèmes avec volumes extrêmes, latence acceptable
# PROFIL 2: BALANCED (Défaut - Trading Standard)
# -----------------------------------------------
# BATCH_SIZE=100
# BATCH_FLUSH_INTERVAL_MS=50
# BATCH_MAX_BUFFER_SIZE=10000
# Caractéristiques:
# - Throughput: 10-20K msg/s
# - Latency P99: ~100ms
# - Utilisation: Cas d'usage général trading
# PROFIL 3: LOW LATENCY (Market Data Streaming)
# ----------------------------------------------
# BATCH_SIZE=50
# BATCH_FLUSH_INTERVAL_MS=20
# BATCH_MAX_BUFFER_SIZE=1000
# Caractéristiques:
# - Throughput: 5-10K msg/s
# - Latency P99: ~50ms
# - Utilisation: Systèmes nécessitant latence minimale
# PROFIL 4: SEQUENTIAL (Debug/Testing)
# -------------------------------------
# BATCH_WRITE_ENABLED=false
# Caractéristiques:
# - Throughput: ~1K msg/s
# - Latency: 1-5ms
# - Utilisation: Debugging, tests unitaires, environnements dev
# ===================================================================
# Monitoring et Observabilité
# ===================================================================
# Endpoints disponibles:
# - GET /metrics/batch : Métriques du batch writer
# - GET /metrics/load : Métriques de charge du serveur
# - GET /health : Health check
# ===================================================================
# Notes pour Architectes
# ===================================================================
# 1. Le batch writing introduit une latence contrôlée mais prévisible
# 2. Pour les systèmes de trading, la latence de 50-100ms est généralement
# acceptable pour les opérations de logging/audit
# 3. Le gain de throughput (10-50x) est critique pour les scénarios
# multi-market et haute volatilité
# 4. Le flush automatique au shutdown garantit la durabilité des données
# 5. Le système détecte automatiquement la pression et force les flushes
# si nécessaire pour éviter la perte de données