You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP

nest-circuit-break

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

nest-circuit-break

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.

0.0.5
latest
Version published
Weekly downloads
0
Maintainers
1
Weekly downloads
 
Created

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-breaker

Usage

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.

FAQs

Package last updated on 05 Dec 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts