- Less or no usage of flat files.
- Transactions on the fly sequential or in parallel.
- Wider scope for expanding use-cases into suites.
- Transaction suites instead of scripts.
- All the above, while considering minimal code change and maximum code re-usability.
- Micro-services
- Database IO
- NFS/SMB IO workloads over on-prem VMs.
- Aggregator APIs
- Test automation
- Each oval represents a class holding multiple defs designed as a generator, these generators in-turn could hold any logic, wrapping sequence or clean-up tasks. These generators are best held within classes while the object calls are abstracted in the config_mapper.py
- The framework begins by reading the user-input and tranforming into a sequence designed in the config_mapper.py. Used eval() to hold and evaluate each object calls respectively.
- Completes one cycle with all hops among Gen1 to Gen 5 without waiting. Then repeats for all input/injest data from Gen 1 is iterated.
- Results can be directed to excel, csv, grafana , BigQuery or Google Sheets as per SDKs availablity.
Workflow A : Collects data, Builds a query, conducts a MySQL transaction, transforms the fetched records, writes to output.
Workflow B : Collects data, Builds test data for UI automation test case, conducts a get on URL, transforms the fetched target, prepares a report.
Workflow C : Collects raw data, Cleans the data, added feature engineering, trains a smaller set for a ML algorightm, predict and evaluate test data, prepares a report.
Data cleaning logic for SQL test data could be re-used in Workflow C.
Transformation logic for web scraped response could be re-used in Workflow A.
The config_mapper should be made to re-direct respective hops accordingly.
- Framework config mapper - This script will hold all needed workflows defined with hops between defs/classes.
- User input transformer - This script will have to ingest user input or pre-def input and convert to a framework specific sequence.
- The user inputs can then be set into a concurrent calls as each workflow stays independent at runtime. Appropriate async/aiohttp calls could be added.
The End.