nest-circuit-break v0.0.5
NestJS Circuit Breaker
This NestJS module provides a Circuit Breaker pattern implementation using the opossum library. It's designed to gracefully handle failures in microservices and distributed systems.
Features
- Easy-to-use decorator to apply circuit breakers to any asynchronous method.
- Configurable global and per-method circuit breaker options.
- Seamless integration with NestJS Dependency Injection.
Installation
Install the package using npm:
npm install nest-circuit-breakerUsage
Setup
First, import and configure the CircuitBreakerModule in your main module (e.g., AppModule). You can provide default circuit breaker options that will apply to all instances.
import { Module } from '@nestjs/common';
import { CircuitBreakerModule } from 'nest-circuit-breaker';
@Module({
imports: [
CircuitBreakerModule.forRoot({
timeout: 3000,
errorThresholdPercentage: 50,
resetTimeout: 30000
}),
// ... other imports
],
})
export class AppModule {}Applying Circuit Breaker
Use the @CircuitBreaker decorator on any asynchronous method to protect it with a circuit breaker. You can override the default options per method.
import { Injectable } from '@nestjs/common';
import { CircuitBreaker } from 'nest-circuit-breaker';
@Injectable()
export class SomeService {
@CircuitBreaker({ timeout: 5000 })
async someMethod() {
// ... method logic
}
}Advanced Configuration
You can pass additional configuration options to CircuitBreakerModule.forRoot() or the @CircuitBreaker decorator based on the opossum options.
Contributing
Contributions are welcome! Please feel free to submit a pull request.
License
This project is licensed under the MIT License.