Skip to content

danielofaustino/worker-threads

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Node.js Worker Threads Demo

This project demonstrates the power of Node.js worker threads by comparing operations with only main thread vs multi-thread operations in a credit card debt processing application.

Overview

The application provides two endpoints to process credit card debts updates for 150,000 cards:

  • Single-threaded implementation
  • Multi-threaded implementation using Node.js worker threads

Performance Comparison

Implementation Processing Time Threads
single-threaded ~1h 30min 1
multi-threaded ~50 seconds 7

API Endpoints

Single-threaded

curl http://localhost:3000/single-threaded

This endpoint processes the debt updates sequentially in a single thread.

Multi-threaded

curl http://localhost:3000/multi-threaded

This endpoint distributes the workload across 7 worker threads, significantly improving performance.

Project Structure

src/
├── single-threaded.js      # Single-threaded implementation
├── server.js           # Express server
├── data/              
│   ├── data.json
│   ├── dataWithPendingDebts.json
│   └── new_data.json
└── worker-thread/
    ├── multi-threaded.js   # Multi-threaded implementation
    └── pending_debts.js     # Worker thread logic

Getting Started

  1. Clone the repository
  2. Install dependencies:
npm install
  1. Start the server:
npm start

Technical Details

  • The application demonstrates the performance impact of using worker threads for CPU-intensive tasks
  • The multi-threaded implementation uses 7 concurrent worker threads to process the data
  • Each worker thread handles a portion of the 150,000 credit card records
  • The blocking implementation processes records sequentially, resulting in longer execution time

Learning Outcomes

This project serves as a practical example of:

  • Node.js Worker Threads implementation
  • Performance optimization in Node.js
  • Handling CPU-intensive tasks

About

Repository for retaining knowledge of how to use worker theads in .

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published