Senior LevelExpress JS
How do you perform Chaos Engineering and resilience testing on Express microservices using Toxiproxy?
❓ Interview Prompt: Explain Chaos Engineering, Toxiproxy latency injection, simulating network partitions/resets, and testing circuit breakers.
Testing how Express microservices handle real-world network failures requires Chaos Engineering.
Using Toxiproxy:
Inject Toxiproxy containers between Express and downstream dependencies (PostgreSQL, Redis, payment APIs). Programmatically inject toxics during CI/CD test runs (5,000ms latency spikes, TCP resets, bandwidth throttling) and assert that Express circuit breakers open cleanly without crashing the process!
Code Implementation Example
javascript
// Chaos Engineering test injecting 5000ms latency into Redis connection
import Toxiproxy from 'toxiproxy-node-client';
const toxiproxy = new Toxiproxy('http://localhost:8474');
const redisProxy = await toxiproxy.get('redis_proxy');
// Inject 5-second latency toxic
await redisProxy.addToxic({
type: 'latency',
attributes: { latency: 5000 }
});
// Assert that Express API falls back to database gracefully when Redis times out!💡Injecting network latency toxics using Toxiproxy for resilience testing.
🎯 Interview Key Takeaway
Use Toxiproxy to inject network latency and TCP resets into tests, verifying that Express circuit breakers fail gracefully.
#Chaos Engineering#Toxiproxy#Resilience#Senior
Back to all Express JS Questions→