{"repo":"fulminate-io/machine","free":true,"listed":false,"github":"https://github.com/fulminate-io/machine","clone":"git clone https://github.com/fulminate-io/machine.git","description":"Machine is a workflow/pipeline library for processing data","language":"Go","stars":169,"topics":["golang","golang-library","golang-package","workflow","workflow-engine","pipeline","pipeline-framework","codespaces","golangci-lint","github-actions"],"license":"MIT","category":"workflow-automation","readme_excerpt":"Machine is a library for creating data workflows. These workflows can be either very concise or quite complex, even allowing for cycles for flows that need retry or self healing mechanisms. ------ Installation Add the primary library to your project ------ The two function types are: These are used in the Machine for functional operations Distribute is a special method used for fan-out operations. It takes an instance of Edge[T] and can be used most typically to distribute work via a Pub/Sub or it can be used in a commandline utility to handle user input or a similiar blocking process. The Edge[T] interface is as follows: The Send method is used for data leaving the associated vertex and the Output method is used by the following vertex to receive data from the channel. ------ Confirguration is done using the Option helper Machine supports collecting metrics and traces through a log/slog wrapper that sends the telemetry to the provided OpenTelemetry Meter and Tracer Examples of Edge implentations can be found in the edge directory and can be used as follows ------ 🤝 Contributing Contributions, issues and feature requests are welcome. Feel free to check issues page if you want to contribute. Check the contributing guide. Author 👤 Jonathan Whitaker - Twitter: @io whitaker - Github: @jonathan-whitaker Show your support Please ⭐️ this repository if this project helped you! License Machine is provided under the MIT License.","default_branch":null,"files":null,"tree":[],"storefront":"/r/fulminate-io","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/fulminate-io/machine/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}