#Resilience: Testing
Chaos Engineering
// middleware.ts - Add to introduce random failures
import { NextResponse } from 'next/server';
export function middleware(request) {
if (process.env.ENABLE_CHAOS === 'true') {
// 10% of requests fail
if (Math.random() < 0.1) {
return new NextResponse(
JSON.stringify({ message: 'Chaos monkey error' }),
{ status: 500 }
);
}
// 20% of requests are slow
if (Math.random() < 0.2) {
return new Promise(resolve => {
setTimeout(() => resolve(NextResponse.next()), 2000);
});
}
}
return NextResponse.next();
}
See ChaosMonkey