All Projects → ERS-HCL → generic-batch-processor

ERS-HCL / generic-batch-processor

Licence: MIT license
”Building a concurrent and distributed system for batch processing which is fault tolerant and can scale up or scale out using Akka.NET (based on actor model)”.

Programming Languages

C#
18002 projects

Projects that are alternatives of or similar to generic-batch-processor

Thespian
Python Actor concurrency library
Stars: ✭ 220 (+1122.22%)
Mutual labels:  actor-model
actors
Actor Model library for Dart.
Stars: ✭ 40 (+122.22%)
Mutual labels:  actor-model
wascc-actor
Now deprecated in favor of using wapc-generated types and wrappers
Stars: ✭ 33 (+83.33%)
Mutual labels:  actor-model
Stateright
A model checker for implementing distributed systems.
Stars: ✭ 213 (+1083.33%)
Mutual labels:  actor-model
wasmcloud-otp
wasmCloud host runtime that leverages Elixir/OTP and Rust to provide simple, secure, distributed application development using the actor model
Stars: ✭ 197 (+994.44%)
Mutual labels:  actor-model
aws-batch-example
Example use of AWS batch
Stars: ✭ 96 (+433.33%)
Mutual labels:  batch-processing
Zio Actors
A high-performance, purely-functional library for building, composing, and supervising typed actors based on ZIO
Stars: ✭ 206 (+1044.44%)
Mutual labels:  actor-model
goroutines
It is an efficient, flexible, and lightweight goroutine pool. It provides an easy way to deal with concurrent tasks with limited resource.
Stars: ✭ 88 (+388.89%)
Mutual labels:  batch-processing
flume
A blazing fast job processing system backed by GenStage & Redis.
Stars: ✭ 37 (+105.56%)
Mutual labels:  batch-processing
Orleans.CosmosDB
Orleans providers for Azure Cosmos DB
Stars: ✭ 36 (+100%)
Mutual labels:  actor-model
Vast
🔮 Visibility Across Space and Time
Stars: ✭ 227 (+1161.11%)
Mutual labels:  actor-model
pubsub-c
Pub/Sub library for C
Stars: ✭ 39 (+116.67%)
Mutual labels:  actor-model
Actors.jl
Concurrent computing in Julia based on the Actor Model
Stars: ✭ 95 (+427.78%)
Mutual labels:  actor-model
Actor Framework
An Open Source Implementation of the Actor Model in C++
Stars: ✭ 2,637 (+14550%)
Mutual labels:  actor-model
python-batch-runner
A tiny framework for building batch applications as a collection of tasks in a workflow.
Stars: ✭ 22 (+22.22%)
Mutual labels:  batch-processing
Gosiris
An actor framework for Go
Stars: ✭ 222 (+1133.33%)
Mutual labels:  actor-model
spring-batch-rest
REST API for Spring Batch using Spring Boot 2.2
Stars: ✭ 85 (+372.22%)
Mutual labels:  batch-processing
rack-cargo
🚚 Batch requests for Rack apps (works with Rails, Sinatra, etc)
Stars: ✭ 17 (-5.56%)
Mutual labels:  batch-processing
corb2
MarkLogic tool for processing and reporting on content, enhanced from the original CoRB
Stars: ✭ 18 (+0%)
Mutual labels:  batch-processing
Akka.Logger.Serilog
Akka.NET logging integration for Serilog library
Stars: ✭ 22 (+22.22%)
Mutual labels:  akkadotnet

Generic Batch Processor

”Building a concurrent and distributed System for batch processing which is fault tolerant and can scale up or scale out using Akka.NET (based on actor model)”.

A generic batch processor is used for dividing parallel work to multiple actors/processes on the same machine, remote machine as well as in distributed network.

Batch Processor workflow

Image of Workflow

Job Manager

Job Manger is managing all the tasks and their status. This can be UI or console based application.

Job Pool Controller Actor

Job Pool Controller Actor has following responsibilities

  1. Assign the task to commander actor
  2. Get the response from commander actor
  3. update the job status
  4. print the job statastics

Job Scheduler

Job Scheduler is responsible for scheduling the job after each interval (10 sec ). It is also responsible for checking the job status after some interval.

Executer

Executer is the backbone the batchprocessor actor system. It is responsible for taking the job from job manager (Job pool controller actor) and perfor that job and after completion, update job manager.

Commander Actor

Commander actor has following responsibilities-

  1. Create the broadcast router for creating coordinator instances.
  2. Get the task from Job pool controller and assign it to any available coordinator.
  3. Get the response from coordinator and update to job pool controller about the task.

Coordinator Actor

Coordinator actor plays mediator role between commander and worker actor.Coordinator actor has following responsibilities-

  1. Create the worker actor for performing task.
  2. Supervise worker actor. If worker actor failed to perform any task then it will take necessary action.
  3. Update the commander once the task is completed by worker.

Worker Actor

Worker actor is the last actor in the hierarchy which actully perform the task. It has following responsibilities-

  1. Get the task from coordinator and perform the task.
  2. Update the task status to coordinator

Current Samples

Fault Tolerant Concurrent application for Batch Processing - Demonstrates how to execute multiple tasks concurrently as well as paralley in Akka.NET.

Fault Tolerant Remote application for Batch Processing - Demonstrates how remotely perform multple tasks concurrently as well as parallely in Akka.NET.

Fault Tolerant Distributed application for Batch Processing - Demonstrates how multiple tasks performed on distributed systems in Akka.NET.

Fault Tolerant Reactive application for Batch Processing - Demonstrates how multiple tasks performed on Reactive systems for distributed application in Akka.NET.

This Batch Processor approach can be used for –

  1. File conversion
  2. Running Automated test cases
  3. Stream Analytics (IOT sensor data)
  4. Database Backup/replication

Contributing

Please feel free to contribute.

Questions about Samples?

Please Create a Github issue for any questions you might have.

Code License

MIT

Documents

Detailed documentaion about Akka.NET is available at Akka.NET docs.

Tools / prerequisites

  • You should have some programming experience and familiarity with C#, WPF, Akka.NET and Actor Model
  • Visual Studio 2013 or later

Author

Vijaykumar Thombre [ [email protected] ]

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].