Implementação Java do Apache Dubbo, um framework de RPC e microsserviços para comunicação, descoberta e gerenciamento de tráfego entre serviços.
sogou/workflow
Framework de computação paralela e redes assíncronas em C++11, usado nos serviços de back-end da Sogou para criar workflows de tarefas baseados em DAG.
- Estrelas
- 14,423
- Forks
- 2,551
- Issues abertas
- 27
- Último commit
- há 3 dias
O que é?
O Sogou C++ Workflow é um engine em C++ para serviços de back-end que combina redes assíncronas com computação paralela. Os usuários organizam tarefas em séries, estruturas paralelas ou DAGs arbitrários, permitindo executar no mesmo fluxo requisições de rede, tarefas de computação e operações de I/O em arquivos.
O framework inclui clientes assíncronos integrados para HTTP, Redis, MySQL (incluindo MariaDB e TiDB) e Kafka, além de uma API de servidor HTTP que pode ser iniciada com poucas linhas de código. Também oferece suporte a protocolos definidos pelo usuário para criar clientes, servidores e sistemas RPC personalizados, além de governança de serviços e balanceamento de carga em arquiteturas de microsserviços.
O projeto é compatível com Linux, macOS, Windows (por meio de uma branch separada que usa IOCP) e Android. A branch master exige C++11 e OpenSSL 1.1 ou posterior, sem depender de boost ou asio. O protocolo Kafka também requer lz4, zstd e snappy.
Recursos principais
- 01Cria grafos de tarefas em série, paralelos ou DAGs arbitrários.
- 02Inclui clientes assíncronos para HTTP, Redis, MySQL e Kafka.
- 03Permite criar servidores HTTP com poucas linhas de código.
- 04Oferece suporte a protocolos definidos pelo usuário para clientes, servidores e RPC personalizados.
- 05Executa tarefas de rede, computação e I/O em arquivos no mesmo workflow.
- 06Oferece recursos de governança de serviços e balanceamento de carga.
Casos de uso
- Criar serviços de back-end de alta concorrência que combinam chamadas de rede e tarefas limitadas pela CPU.
- Orquestrar várias chamadas assíncronas a APIs ou bancos de dados com dependências entre elas.
- Criar sistemas RPC personalizados com base em um protocolo definido pelo usuário.
- Desenvolver componentes de microsserviços em C++ com balanceamento de carga integrado.
Início rápido
- 1
Clone o repositório
git clone https://github.com/sogou/workflow - 2
Entre no diretório do projeto e compile a biblioteca
cd workflow make - 3
Compile os exemplos do tutorial
cd tutorial make
Antes de usar
- A branch master requer OpenSSL 1.1 ou superior, a menos que você use a branch nossl.
- O suporte a Kafka requer a instalação de bibliotecas de compressão adicionais (lz4, zstd, snappy).
- O suporte ao Windows fica em uma branch separada, não na base de código principal.
Em coleções
Tópicos
Perguntas frequentes
- O que é workflow?
- Framework de computação paralela e redes assíncronas em C++11, usado nos serviços de back-end da Sogou para criar workflows de tarefas baseados em DAG. O Sogou C++ Workflow é um engine em C++ para serviços de back-end que combina redes assíncronas com computação paralela. Os usuários organizam tarefas em séries, estruturas paralelas ou DAGs arbitrários, permitindo executar no mesmo fluxo requisições de rede, tarefas de computação e operações de I/O em arquivos.
- workflow é gratuito? Qual é a licença?
- workflow é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
- workflow ainda é mantido?
- Manutenção ativa. O último commit de workflow foi em 22 de out. de 2026.
- Para que posso usar workflow?
- Criar serviços de back-end de alta concorrência que combinam chamadas de rede e tarefas limitadas pela CPU. Orquestrar várias chamadas assíncronas a APIs ou bancos de dados com dependências entre elas. Criar sistemas RPC personalizados com base em um protocolo definido pelo usuário. Desenvolver componentes de microsserviços em C++ com balanceamento de carga integrado.
- Como instalar workflow?
- Clone o repositório: git clone https://github.com/sogou/workflow Entre no diretório do projeto e compile a biblioteca: cd workflow make Compile os exemplos do tutorial: cd tutorial make
- Onde consigo workflow?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/sogou/workflow
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Framework assíncrono em Kotlin para criar microsserviços, aplicações web e APIs HTTP, desenvolvido pela JetBrains.
Um microframework C++ rápido, no estilo do Flask, para criar serviços web HTTP e WebSocket, distribuído como header-only e fácil de usar.
Biblioteca base leve em C++ que reúne corrotinas no estilo goroutine, networking, logging, parsing de flags, JSON, testes unitários e benchmarks.
Um complemento leve para a biblioteca requests do Python que envia requisições HTTP de forma assíncrona usando concurrent.futures.
Um service mesh de código aberto que adiciona gerenciamento de tráfego, segurança e observabilidade a microsserviços com poucas ou nenhuma alteração no código.