# sogou/workflow

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/sogou-workflow).**

14,301 stars · 2,567 forks · C++ · apache-2.0

## Links

- GitHub: https://github.com/sogou/workflow
- awesome-repositories: https://awesome-repositories.com/repository/sogou-workflow.md

## Topics

`consul` `dag` `http` `kafka` `mysql` `redis` `sogou` `tasking`

## Description

Workflow is an asynchronous C++ task engine designed for building distributed systems and high-performance network services. It provides a framework for orchestrating complex sequences of network, file, and computational operations, allowing developers to compose these tasks into parallel workflows.

The library functions as a toolkit for implementing scalable servers and clients for protocols such as HTTP, Redis, MySQL, and Kafka. It distinguishes itself through a task-based concurrency model that manages non-blocking operations and coordinates service discovery, load balancing, and traffic routing to maintain consistent performance across distributed environments.

The system utilizes a protocol-agnostic communication layer and event-driven input/output multiplexing to handle high-volume data exchange. By structuring operations as directed acyclic graphs, the framework ensures that dependent tasks trigger automatically upon the completion of upstream data requirements, while zero-copy buffer management minimizes overhead during serialization.

## Tags

### Data & Databases

- [Network Programming Libraries](https://awesome-repositories.com/f/data-databases/data-processing-pipelines/data-serialization/json-libraries/c/network-programming-libraries.md) — Implements high-throughput servers and clients for protocols like HTTP, Redis, MySQL, and Kafka with built-in load balancing.

### Networking & Communication

- [Network Services](https://awesome-repositories.com/f/networking-communication/network-infrastructure-routing/network-services.md) — Enables the creation of high-performance servers and clients for standard protocols to exchange data reliably between distributed systems. ([source](https://github.com/sogou/workflow/tree/master/docs/))
- [High-Performance Networking](https://awesome-repositories.com/f/networking-communication/high-performance-networking.md) — Builds scalable servers and clients for protocols like HTTP, Redis, and Kafka to handle high-volume data exchange.
- [Distributed Service Connectivity](https://awesome-repositories.com/f/networking-communication/distributed-service-connectivity.md) — Coordinates service discovery, load balancing, and traffic routing to maintain reliable connectivity across distributed system environments. ([source](https://github.com/sogou/workflow/tree/master/docs/))
- [Distributed Systems Infrastructure](https://awesome-repositories.com/f/networking-communication/distributed-systems-p2p/distributed-systems-coordination/distributed-systems-infrastructure.md) — Provides infrastructure for coordinating service discovery, load balancing, and traffic routing in large-scale backend environments.
- [Load Balancers](https://awesome-repositories.com/f/networking-communication/load-balancers.md) — Coordinates service discovery and traffic routing to dynamically balance requests across distributed nodes based on real-time performance metrics.
- [Asynchronous Event Multiplexers](https://awesome-repositories.com/f/networking-communication/messaging-channel-management/asynchronous-event-multiplexers.md) — Handles system calls via non-blocking event loops that monitor multiple file descriptors to maintain responsiveness under heavy concurrent load.
- [Protocol-Agnostic Transport Layers](https://awesome-repositories.com/f/networking-communication/protocol-agnostic-transport-layers.md) — Provides a modular interface that abstracts network interactions to allow consistent handling of diverse protocols through a unified model.

### Software Engineering & Architecture

- [C++ Task Engines](https://awesome-repositories.com/f/software-engineering-architecture/asynchronous-task-managers/c-task-engines.md) — Provides a high-performance framework for building distributed systems by composing asynchronous tasks into parallel workflows.
- [Microservice Frameworks](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/distributed-computing-paradigms/microservice-frameworks.md) — Facilitates the creation of scalable network services and manages complex communication patterns between microservices using task-based concurrency.
- [Asynchronous Task Orchestrators](https://awesome-repositories.com/f/software-engineering-architecture/asynchronous-task-orchestrators.md) — Manages complex sequences of network and computational operations to maximize system throughput through efficient non-blocking task execution.
- [Directed Acyclic Graph Engines](https://awesome-repositories.com/f/software-engineering-architecture/directed-acyclic-graph-engines.md) — Structures complex operations as dependency graphs where tasks trigger automatically upon the completion of upstream data requirements.
- [Asynchronous Schedulers](https://awesome-repositories.com/f/software-engineering-architecture/task-scheduling/asynchronous-schedulers.md) — Manages non-blocking operations by mapping network and computational tasks to a fixed-size thread pool for high concurrency.
- [Asynchronous Task Processors](https://awesome-repositories.com/f/software-engineering-architecture/asynchronous-task-processors.md) — Executes complex sequences of network, file, and computational operations using a task-based model to maximize system throughput. ([source](https://github.com/sogou/workflow/tree/master/docs/))
- [Parallel Task Executors](https://awesome-repositories.com/f/software-engineering-architecture/task-scheduling/parallel-task-executors.md) — Connects multiple asynchronous tasks into directed graphs to run dependent operations simultaneously while ensuring correct data flow. ([source](https://github.com/sogou/workflow/tree/master/docs/))
- [Zero-Copy Mechanisms](https://awesome-repositories.com/f/software-engineering-architecture/performance-reliability/performance-optimization/data-handling-throughput/zero-copy-mechanisms.md) — Utilizes efficient data structures to minimize memory copying overhead during high-throughput network serialization and deserialization.

### Development Tools & Productivity

- [Workflow Composition](https://awesome-repositories.com/f/development-tools-productivity/workflow-composition.md) — Connects dependent operations into directed graphs to run tasks simultaneously while ensuring data flows correctly between processing steps.
