Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dhi13man/bombardment-runner
A lightweight automation tool intended to pick up data, transform it using a set of rules and then send it to a target system.
https://github.com/dhi13man/bombardment-runner
automation concurrency curl go golang tools
Last synced: about 1 month ago
JSON representation
A lightweight automation tool intended to pick up data, transform it using a set of rules and then send it to a target system.
- Host: GitHub
- URL: https://github.com/dhi13man/bombardment-runner
- Owner: Dhi13man
- Created: 2024-08-04T15:07:51.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2024-08-22T07:22:36.000Z (5 months ago)
- Last Synced: 2024-12-06T08:06:05.522Z (about 1 month ago)
- Topics: automation, concurrency, curl, go, golang, tools
- Language: Go
- Homepage:
- Size: 24.6 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Bombardment
Bombardment is a lightweight automation tool intended to pick up data, transform it using a set of rules and then send it to a target system. It is designed to perform small repetitive migrations of data from one system to another. It supports concurrent processing of data, client-side load balancing strategies, and is designed to be extensible and reusable.
## Why Bombardment?
- Bombardment is written in Golang to be fast, lightweight and scalable enough to process large amounts of data
- Bombardment is designed to be easily extensible
- Bombardment supports batched concurrent processing of data
- Bombardment supports different channels (REST / GRPC etc) to send data to target systems
- Bombardment supports different client-side load balancing strategies## To Do
- [x] Initial setup with scalable architecture
- [x] Define basic DTOs and Data Models
- [x] Implement workgroup and worker pool
- [x] Implement basic clients: REST
- [x] Implement basic load balancing strategy: Round Robin
- [x] Implement concurrent batch processing using channels
- [ ] Implement basic data transformation rules: JSONata
- [ ] Implement a state machine for Start, Pause, Resume, Stop
- [ ] Implement advanced progress tracking
- [ ] Basic UI for monitoring and control