⭐️ GitHub Star 数量前十的工作流项目
文章开始前,我们先做个小调查:在日常工作中,你会使用自动化工作流工具吗?🙋
事实上,工作流工具已经变成了提升效率的关键。其实在此之前我们已经写过一篇博客,跟大家分享五个好用的工作流工具。
但今天这篇文章将专注探讨【开源工作流工具】。
因为我们发现越来越多的开发者和团队开始依赖开源的工作流工具来简化操作、优化业务流程。在这篇文章中,我们将深入分析 GitHub 上 workflows 分类中星星数排名最高的十个项目,帮助你更好地选择适合需求的开源工作流工具。
📈排名如下:
- Dify: 开源的 LLM 应用开发平台,提供从原型到生产环境的高效开发工具,支持 RAG 和自动化工作流。
- Appsmith: 可视化低代码平台,支持快速构建企业内部工具和仪表盘,连接多种数据源。
- Conductor: Netflix 开发的分布式工作流编排引擎,用于管理复杂微服务架构中的异步任务。
- NocoBase: 数据模型驱动的开源无代码开发平台,支持插件扩展和复杂业务系统构建。
- Temporal: 强大的开源分布式工作流管理系统,提供高可靠性和可扩展性,适用于长时间运行的任务。
- Openproject: 开源项目管理软件,支持传统与敏捷项目管理方法,涵盖任务、时间表和协作工具。
- UVdesk: 开源客户支持平台,提供多渠道整合和工作流自动化,用于管理和优化客户支持流程。
- Pipedream: 开源事件驱动的集成平台,连接应用程序并构建自动化工作流,支持丰富的自定义代码。
- Cadence: Uber 开发的分布式工作流引擎,简化异步任务管理,支持持久化与高容错性。
- Elsa 3.0: 基于 .NET 的开源工作流引擎,支持代码和可视化定义工作流,用于自动化业务流程和数据管道。
接下来让我们详细展开吧!
第一名:Dify
Dify 是一个开源的 LLM(大型语言模型)应用开发平台,旨在帮助开发者快速从原型阶段过渡到生产环境。其直观的界面集成了多种功能模块,包括 AI 工作流、RAG(检索增强生成)管道、Agent 能力、模型管理和可观测性工具等。
相关信息:
- ⭐️ Github Star 数:52.2k
- 贡献者:552
- 项目地址:https://github.com/langgenius/dify
- 官网:https://dify.ai/
主要特点:
- 工作流:在可视化画布上构建和测试强大的 AI 工作流程,简化开发过程。
- 全面的模型支持:无缝集成数百种专有或开源的 LLM,支持多种推理提供商和自托管解决方案,涵盖 GPT、Mistral、Llama3 等模型。
- Prompt IDE:提供直观的界面,用于编写提示词、比较模型性能,并为基于聊天的应用添加额外功能,如文本转语音。
- RAG 管道:提供从文档摄取到检索的广泛 RAG 功能,支持从 PDF、PPT 等常见文档格式中提取文本。
- LLMOps:监控和分析应用日志及性能,基于生产数据和注释持续改进提示词、数据集和模型。
Dify 可以用来做什么?
- 构建智能推荐系统
Dify 的强大模型支持和 Prompt IDE 功能,让开发者可以快速构建智能推荐系统。比如,电商平台可以基于用户行为数据,结合 RAG(检索增强生成)能力,为用户提供个性化的商品推荐。媒体平台可以使用 Dify 为用户推荐相关文章、视频或音频内容,提升用户体验和留存率。
- 开发知识问答助手
企业可以用 Dify 开发基于内部知识库的问答助手,例如客户服务聊天机器人或技术支持助手。通过整合 RAG 管道,Dify 可以从文档和数据库中检索相关信息,生成准确的回答,用于支持 IT 部门、法律团队或医疗咨询。
- 构建多语言内容生成工具
Dify 支持多种开源和专有的大语言模型,能够处理多语言文本。这使得它非常适合用于创建多语言内容生成工具,例如跨语言的营销文案生成器、自动翻译平台,或者全球化内容的本地化处理系统。
- 搭建内部流程自动化系统
企业可以用 Dify 来构建工作流程自动化系统。例如,通过 Dify 实现的 AI 驱动工作流,可以自动处理发票、合同审核、报销流程或招聘简历筛选。这大幅减少了手动操作的重复性工作,提高了效率。
- 构建数据驱动的决策支持系统
Dify 的可观测性工具和日志分析功能,可以用来开发数据驱动的决策支持系统。例如,企业可以通过整合 Dify 提供的分析能力,实时监控销售数据、客户反馈和市场动态,为管理层提供精准的决策依据。
第二名:Appsmith
Appsmith 是一个开源的低代码应用开发平台,可以帮助开发者快速构建内部工具、管理面板和仪表盘。通过直观的拖放界面,用户可以轻松创建自定义应用程序,并与多种数据源和 API 集成。
相关信息:
- ⭐️ GitHub Star 数:34.7k
- 贡献者:329
- 项目地址:https://github.com/appsmithorg/appsmith
- 官网:https://www.appsmith.com/
主要特点:
- 拖放式 UI 构建器:提供丰富的预构建小部件,如表格、图表、表单和按钮,用户可以通过拖放方式快速构建响应式用户界面。
- 多数据源集成:支持与超过 25 种数据库和任何 API 的集成,包括 MongoDB、PostgreSQL、REST 和 GraphQL 等。
- JavaScript 自定义:允许在应用中编写和执行 JavaScript 代码,以实现复杂的业务逻辑和数据处理。
- Git 集成:支持与 Git 仓库的集成,方便版本控制、协作开发和持续部署。
- 自托管选项:除了云版本,用户还可以选择在本地或私有服务器上自托管,确保数据隐私和安全。
Appsmith 可以用来做什么?
- 构建内部管理系统
Appsmith 提供了强大的可视化界面和多数据源集成功能,企业可以快速搭建内部管理工具。例如,开发库存管理系统以实时跟踪库存变化,或构建订单处理平台,帮助企业高效管理客户订单流程。对于需要更强数据追踪的团队,还可以用 Appsmith 开发客户关系管理系统(CRM),提高运营效率和客户满意度。
- 创建实时数据仪表盘
利用 Appsmith 集成多种数据源的能力,用户可以构建功能强大的实时数据仪表盘。例如,在销售团队中,实时监控销售额和客户转化率;在 IT 运维中,跟踪系统性能和服务器状态,帮助团队快速识别和解决问题,支持数据驱动决策。
- 开发客户支持面板
Appsmith 允许快速构建客户支持工具,整合客户信息和工单状态。例如,开发一个实时工单跟踪系统,支持客户服务团队查看反馈状态、分配任务,并及时更新客户问题的解决进度,全面提升客户服务体验。
- 构建审批和工作流程应用
企业可以通过 Appsmith 开发审批流程管理工具,例如用于财务报销审批、员工请假审批或采购流程管理的应用程序。通过自动化工作流,简化繁琐的手动审批操作,提升审批效率,减少人为错误。
- 开发自定义报告工具
使用 Appsmith,用户可以从多个数据源中提取关键数据,创建定制化的报告工具。例如,为销售团队生成详细的业绩报告,为财务部门设计预算分析仪表盘,或者为运营团队展示实时的物流信息。这些工具帮助企业快速获取洞察,满足具体业务需求。
第三名:Conductor
Conductor 是由 Netflix 开发的开源事件驱动编排平台,用于协调跨微服务的工作流。它提供了灵活、可扩展的框架,允许开发者定义复杂的业务流程,并在分布式系统中高效执行。
相关信息:
- ⭐️ GitHub Star 数:18.2k
- 贡献者:57
- 项目地址:https://github.com/conductor-oss/conductor
- 官网:https://conductor-oss.org/
主要特点:
- 工作流即代码:支持使用 JSON 定义工作流,并提供多种语言的 SDK,方便开发者以代码方式创建和管理工作流。
- 丰富的任务类型:内置多种任务类型,如 HTTP、Lambda、子工作流和事件任务,满足不同的业务需求。
- 动态工作流管理:工作流可独立于底层服务进行演进,支持版本控制和动态更新。
- 可视化界面:提供可定制的 UI,用于监控和管理工作流,提升可观测性和调试能力。
- 灵活的持久化和队列选项:支持 Redis、MySQL、PostgreSQL 等多种持久化和队列实现,适应不同的部署环境。
Conductor 可以用来做什么?
- 构建复杂的业务流程
Conductor 提供了强大的分布式工作流管理功能,企业可以使用它定义和执行跨多个微服务的复杂业务流程。例如,在电商平台中,可以使用 Conductor 编排订单处理流程,包括订单验证、库存检查、支付结算以及物流信息同步,确保流程的高效性和准确性。
- 实现微服务编排
通过 Conductor,开发者可以轻松协调多个微服务之间的交互,确保服务调用的顺序和依赖关系。例如,在 SaaS 应用中,可以使用 Conductor 管理用户注册过程,包括账户创建、通知发送以及数据同步,提升系统的可靠性和可维护性。
- 开发事件驱动的应用程序
Conductor 支持事件驱动架构,非常适合构建响应式应用程序。例如,在实时数据处理场景下,可以通过 Conductor 管理传感器数据流的处理,或在消息队列中自动消费任务并触发后续操作,确保异步任务的高效执行。
- 自动化运维任务
运维团队可以利用 Conductor 编排自动化运维任务,例如定时备份数据库、定期清理系统日志以及实时监控服务器状态。这些任务通过 Conductor 自动化执行,可以显著减少人工干预,提高运维效率。
- 构建可扩展的工作流平台
开发者可以基于 Conductor 构建自定义的工作流平台,满足特定的业务需求。例如,为金融行业开发高并发的支付工作流管理平台,或为视频处理平台设计大规模任务分发和执行框架,支持海量任务的高效运行。
第四名:NocoBase
NocoBase 是一个开源的无代码/低代码开发平台。NocoBase 可以帮助开发者和企业快速构建业务应用和企业解决方案。NocoBase 设计强调可扩展性,采用插件化架构,所有新功能都可以通过开发和安装插件来实现,扩展功能就像在手机上安装 APP 一样简单。
相关信息:
- ⭐️ GitHub Star 数:12.7k
- 贡献者:80
- 项目地址:https://github.com/nocobase/nocobase
- 官网:https://www.nocobase.com/
主要特点:
- 工作流自动化:NocoBase 内置可视化工作流设计器,使用简单但是功能强大,可以简化业务流程的自动化配置。
- 插件化架构:NocoBase 采用插件化架构具有高可扩展性,全部功能都是插件,就像 Wordpress,插件即插即用。无论是页面、区块、操作,还是 API、数据源,都可以开发新的插件来满足新的需求。
- 多数据源支持:支持与多种数据库和 API 集成,方便用户管理和操作不同的数据源。
- 灵活的权限控制:提供细粒度的权限管理,确保数据和操作的安全性。
- 所见即所得的UI界面:页面就是一块画布,在画布上摆放各种区块和操作,组合出合适的界面,就像 Notion。用户无需编写代码即可构建复杂的业务逻辑和界面。
NocoBase 可以用来做什么?
- 构建企业内部管理系统
NocoBase 提供了强大的数据模型驱动设计,企业可以快速搭建如客户关系管理(CRM)、人力资源管理(HRM)和项目管理等内部管理系统。例如,利用 NocoBase 构建一个实时更新的销售管理系统,整合客户信息、跟踪销售进度,并生成动态报表,以提高企业运营效率。
- 开发数据收集和分析工具
通过与多种数据源的无缝集成,用户可以构建高效的数据收集、整理和分析工具。例如,在市场营销领域,NocoBase 可以用来收集客户反馈数据,进行整理并生成分析报告,帮助团队优化营销策略。
- 创建定制化业务流程
借助 NocoBase 的可视化界面,用户可以轻松设计和实现符合自身业务需求的工作流程。例如,在电商领域,企业可以使用 NocoBase 自动化订单处理,包括库存更新、客户通知和物流管理,显著提升业务灵活性。
- 构建客户服务平台
使用 NocoBase,企业可以搭建客户服务和支持平台,集中管理客户信息、工单处理和反馈收集。例如,创建一个客户支持门户,实时更新客户问题的解决状态,为客户提供透明且高效的服务流程,提升客户满意度。
- 开发内容管理系统(CMS)
NocoBase 支持构建高度定制化的内容管理系统(CMS)。用户可以用它管理网站内容、博客文章和多媒体资源。例如,一个团队可以开发一个简单直观的博客管理平台,实现文章的发布、更新和归档功能,同时支持用户评论管理和多媒体内容嵌入。
第五名:Temporal
Temporal 是一个开源的持久化执行平台,开发者可以用于构建可扩展且可靠的分布式应用程序。通过抽象复杂的基础设施细节,Temporal 使开发者能够专注于业务逻辑的实现,而无需担心故障处理、状态管理和任务调度等问题。
相关信息:
- ⭐️ GitHub Star 数:12.1k
- 贡献者:215
- 项目地址:https://github.com/temporalio/temporal
- 官网:https://temporal.io/
主要特点:
- 持久化工作流:Temporal 提供持久化的工作流执行环境,确保任务在面对故障时能够自动恢复,保证执行的可靠性。
- 多语言 SDK 支持:支持多种编程语言的 SDK,包括 Go、Java、Python、TypeScript 和 .NET,方便开发者在熟悉的语言环境中使用。
- 灵活的任务调度:支持复杂的任务调度和编排,适用于长时间运行的任务和需要精确控制的业务流程。
- 可扩展性:设计为可水平扩展,能够处理大量并发工作流,满足企业级应用的需求。
- 可观测性:提供详细的执行历史记录和监控工具,帮助开发者调试和优化工作流。
Temporal 可以用来做什么?
- 构建复杂的业务流程
Temporal 提供了强大的工作流管理功能,企业可以使用它定义和执行跨多个微服务的复杂业务流程。例如,在电子商务中,Temporal 可以协调订单处理,包括验证库存、支付结算、通知物流和更新订单状态,确保流程的可靠性和一致性。
- 实现微服务编排
Temporal 允许开发者通过工作流轻松编排多个微服务之间的交互,确保服务调用的顺序和依赖关系。例如,在金融行业中,可以使用 Temporal 管理资金转账流程,处理跨账户的事务操作,确保数据一致性和高可靠性。
- 开发事件驱动的应用程序
Temporal 支持事件驱动架构,适用于开发响应式应用程序。例如,在实时数据处理中,可以使用 Temporal 监听事件源(如消息队列或传感器数据),触发工作流来分析数据、存储结果或通知相关服务。
- 自动化运维任务
运维团队可以利用 Temporal 实现自动化任务的编排和执行。例如,设置定时任务来备份数据库、清理旧日志或监控系统健康状态,从而减少人工干预,提升运维效率。
- 构建可扩展的工作流平台
Temporal 提供了高并发和容错能力,开发者可以基于它构建自定义的工作流平台。例如,为视频处理平台设计一个自动化的任务分发系统,支持大规模任务执行和实时状态监控,满足高性能需求。
第六名:Openproject
OpenProject 是一款功能全面的开源项目管理工具,专注于为团队提供全生命周期的项目支持。从计划和执行到监控和交付,OpenProject 支持多种项目管理方法,包括传统瀑布式管理、敏捷开发以及混合型流程,为团队提供灵活的协作平台。
相关信息:
- ⭐️ GitHub Star 数:9.5k
- 贡献者:250
- 项目地址:https://github.com/opf/openproject
- 官网:https://www.openproject.org/
主要特点:
- 项目规划与排程:通过甘特图直观地创建和可视化项目计划,分解任务,制定详细的时间表,确保项目按计划推进。
- 敏捷、看板与 Scrum:支持敏捷项目管理方法,提供看板和 Scrum 板,帮助团队快速迭代,提升协作效率。
- 时间跟踪与成本报告:简化时间跟踪过程,提供自定义报告,实时了解项目预算、时间和成本的使用情况。
- 产品路线图与发布规划:帮助团队定义产品目标,规划发布周期,确保产品开发与市场需求保持一致。
- 工作流与自定义:允许用户根据项目需求自定义工作流,设置状态转换,提升项目管理的灵活性和效率。
OpenProject 可以用来做什么?
- 跨团队协作和计划管理
OpenProject 的甘特图功能非常适合需要详细计划和排程的团队,例如产品开发或建筑工程团队,可以帮助他们明确任务时间线和资源分配。
- 敏捷开发项目管理
敏捷团队可以利用 OpenProject 提供的 Scrum 板和看板,快速规划冲刺内容、跟踪进度,并实时调整优先级,提升敏捷开发效率。
- 多项目组合管理
对于需要同时管理多个项目的组织,OpenProject 提供了跨项目视图,帮助团队分析资源使用情况、进度对比和整体项目健康状况。
- 项目生命周期管理
从项目启动到交付,OpenProject 支持全生命周期管理,特别适用于复杂的长期项目,如 IT 基础设施部署或产品研发。
- 开放性集成的开发流程管理
开发团队可以通过集成 Git 和 Jenkins 等工具,将 OpenProject 作为版本控制和持续集成的一部分,从而实现更流畅的开发流程。
第七名:UVdesk
UVdesk 是一个开源的帮助台系统框架,可以用于帮助企业高效管理客户支持流程。该框架基于 PHP 和 Symfony 构建,提供灵活的模块化设计,支持多渠道集成,适用于各种规模的企业。
相关信息:
- ⭐️ GitHub Star 数:9.1k
- 贡献者:31
- 项目地址:https://github.com/uvdesk/community-skeleton
- 官网:https://www.uvdesk.com
主要特点:
- 核心框架:提供必要的 API,确保项目和相关包的平稳运行。
- 扩展框架:支持第三方包的集成和开发,方便用户根据需求扩展功能。
- 自动化工作流:通过预设规则和自动化任务,简化重复性操作,提高支持团队的效率。
- 邮箱组件:将所有客户邮件转换为支持票据,便于管理和跟踪客户查询。
- 支持中心组件:集成可定制的支持中心门户,方便用户与支持人员互动。
UVdesk 可以用来做什么?
- 电子商务支持 UVdesk 提供与主流电商平台的无缝集成,帮助企业快速处理客户的订单查询、退货和退款请求。例如,当客户提交关于订单延迟的查询时,UVdesk 可以自动提取相关订单信息并生成支持票据,确保客服团队及时解决问题,提升购物体验。
- 多渠道客户服务 UVdesk 支持整合来自电子邮件、社交媒体和网站表单的客户咨询,为企业提供统一的客户服务平台。例如,企业可以在一个界面中同时处理客户的电子邮件询问、Facebook 评论以及通过在线表单提交的问题,确保服务的高效和一致性。
- 内部 IT 支持 企业可以使用 UVdesk 提供技术支持,帮助员工解决 IT 服务请求和故障问题。例如,当员工提交设备故障报告时,UVdesk 会自动生成支持票据,分配给相关的 IT 团队成员进行处理,提高内部支持效率。
- 产品售后服务 UVdesk 支持跟踪和解决客户的产品使用问题,提供全面的售后技术支持。例如,企业可以使用 UVdesk 管理保修期内的维修请求,提供实时更新,并确保所有客户的技术问题得到妥善处理。
- 客户反馈管理 UVdesk 提供强大的反馈收集和分析功能,帮助企业改进产品和服务质量。例如,通过 UVdesk 收集客户关于产品功能改进的建议,生成数据报告并传递给研发团队,持续优化客户体验,提升满意度。
第八名:Pipedream
Pipedream 是一个面向开发者的开源集成平台,旨在简化应用程序之间的连接和自动化流程的构建。通过 Pipedream,开发者可以快速创建、测试和部署工作流,整合超过 1,000 种应用和服务,实现高效的事件驱动自动化。
相关信息:
- ⭐️ GitHub Star 数:9k
- 贡献者:170
- 项目地址:https://github.com/PipedreamHQ/pipedream
- 官网:https://pipedream.com/
主要特点:
- 工作流:Pipedream 的工作流由一系列步骤组成,这些步骤可以是预构建的操作或自定义的代码(支持 Node.js、Python、Golang 或 Bash),并由事件触发(如 HTTP 请求、定时器或第三方应用事件)。
- 事件源:事件源监控来自服务(如 GitHub、Slack、Airtable、RSS 等)的新数据。当检测到新事件时,事件源会触发相关的工作流。
- 操作:操作是预构建的代码步骤,可在工作流中执行常见操作,如发送电子邮件、在 Google 表格中添加行等。
- 自定义代码:Pipedream 允许在工作流中运行自定义代码,支持导入语言的包管理器中的任何包,并连接到任何 Pipedream 支持的应用。
- 目标:异步地将事件传递到常见目标,如 Amazon S3、Snowflake、HTTP 和电子邮件。
Pipedream 可以用来做什么?
- 跨应用集成
Pipedream 支持连接不同的 SaaS 应用和服务,帮助企业实现数据的自动同步和操作。例如,当收到一封新邮件时,可以使用 Pipedream 自动将邮件内容保存到云存储服务(如 Google Drive 或 Dropbox),实现无缝的数据管理。
- 事件驱动自动化
基于特定事件触发工作流,提高业务流程效率。例如,在电商平台上,当客户下单时,Pipedream 可以自动触发后续操作,包括生成订单确认邮件、更新库存系统,以及通知物流团队。
- API 开发与管理
Pipedream 提供便捷的工具快速创建和部署 API 接口,支持处理 HTTP 请求和集成第三方服务。例如,开发者可以用 Pipedream 创建一个 REST API 来收集用户反馈,并自动将数据存储到数据库中,简化后端开发流程。
- 数据处理与传输
Pipedream 支持高效的数据处理和转换,将数据传输到指定的目标位置。例如,可以使用 Pipedream 收集来自不同数据源的信息,对其格式化处理后传输到数据仓库(如 Snowflake 或 BigQuery),方便后续的分析和报告生成。
- 自定义逻辑实现
在工作流中编写自定义代码,满足特定业务需求。例如,在一个支付处理流程中,Pipedream 允许开发者添加自定义的验证逻辑或计算规则,确保复杂的业务逻辑能够顺利执行,同时与现有的系统集成。
第九名:Cadence
Cadence 是由 Uber 开发的开源分布式工作流引擎,旨在以可扩展且可靠的方式执行异步长时间运行的业务逻辑。它提供了一个编程框架,使开发者能够使用熟悉的编程语言(如 Go 和 Java)编写工作流和活动,简化了构建分布式应用程序的复杂性。
相关信息:
- ⭐️ GitHub Star 数:8.3k
- 贡献者:144
- 项目地址:https://github.com/cadence-workflow/cadence
- 官网:https://cadenceworkflow.io/
主要特点:
- 可扩展性:Cadence 设计为水平扩展,能够处理数百万个并发工作流。
- 容错性:它使开发者能够编写有状态的应用程序,而无需担心处理进程故障的复杂性。
- 持久性:Cadence 保留了完整的多线程应用程序状态,包括线程堆栈和局部变量,确保在硬件和软件故障情况下的可靠性。
- 多语言支持:官方维护了 Go 和 Java 客户端库,社区还开发了 Python 和 Ruby 客户端库,方便开发者使用熟悉的语言编写工作流。
- 异步事件复制:提供开箱即用的异步历史事件复制功能,帮助从区域故障中恢复。
Cadence 可以用来做什么?
- 微服务编排
Cadence 提供了强大的工作流编排能力,适用于微服务架构中多个服务的交互管理。例如,在一个电商平台中,Cadence 可以协调库存检查、支付处理和物流通知等多个服务的调用,确保复杂业务流程的可靠执行。
- 长时间运行的工作流管理
Cadence 支持长时间运行的任务管理,确保任务在故障情况下不中断。例如,在支付处理场景中,Cadence 可以跟踪每个支付流程的状态,即使在系统重启或网络中断的情况下,任务仍然能够继续完成。
- 事件驱动的应用程序
使用 Cadence 的工作流和活动模型,开发者可以构建响应外部事件的应用程序。例如,在 IoT 系统中,Cadence 可以处理传感器数据流的事件,触发后续的数据存储、分析或通知任务,确保事件的高效处理和可靠性。
- 人机交互工作流
Cadence 能够处理需要人工干预的工作流,确保流程的可追踪性和稳定性。例如,在审批流程中,Cadence 可以自动发送任务到相关审批人,等待人工确认后继续执行下一步骤,同时记录每个操作的详细日志。
- 分布式事务管理
在分布式系统中,Cadence 提供了事务管理功能,确保跨多个服务或数据库的操作具有一致性。例如,在金融行业中,Cadence 可以协调跨账户的资金转移,确保所有步骤要么全部完成,要么全部回滚,避免数据不一致的问题。
第十名:Elsa 3.0
Elsa Core 是一个开源的 .NET 工作流库,旨在为开发者提供灵活且可扩展的工作流管理解决方案。通过 Elsa,开发者可以在任何 .NET 应用程序中定义、执行和管理工作流,支持多种定义方式,包括代码、可视化设计器和 JSON 格式。
相关信息:
- ⭐️ GitHub Star 数:6.5k
- 贡献者:145
- 项目地址:https://github.com/elsa-workflows/elsa-core
- 官网:https://v3.elsaworkflows.io/
主要特点:
- 多种工作流定义方式:支持通过 C# 代码、可视化设计器和 JSON 格式定义工作流,满足不同开发者的需求。
- 丰富的活动库:内置多种预定义活动,如条件判断、循环、延迟、HTTP 请求等,方便快速构建复杂工作流。
- 持久化支持:提供多种持久化选项,如数据库、文件系统等,确保工作流状态的可靠保存。
- 集成 Elsa Studio:提供基于 Blazor 的 Web 设计器,支持可视化创建和管理工作流,提升开发效率。
- REST API 支持:通过 Elsa Server 提供 REST API,方便与其他系统集成,实现工作流的启动、暂停、恢复等操作。
Elsa Core 可以用来做什么?
- 业务流程自动化
在企业应用中,使用 Elsa 定义和执行复杂的业务流程,如订单处理、审批流程等,提高效率,减少人工错误。
- 事件驱动的工作流
处理基于事件的工作流,如用户注册、支付完成等,确保事件的可靠处理和响应。
- 人机交互流程
处理需要人工干预的流程,如审批、验证等,确保流程的可追踪性和可靠性。
- 微服务编排
在微服务架构中,使用 Elsa 编排多个服务之间的交互,确保复杂业务流程的可靠执行。
- 数据处理管道
构建复杂的数据处理工作流,管理数据的提取、转换和加载(ETL)过程,确保数据处理的可靠性和可扩展性。
总结
虽然这个十个产品在 GitHub 里属于 workflows 分类,但实际上有完全不同的应用场景,最后让我们来简单总结一下。
无代码/低代码开发工具
这三个工具结合工作流自动化和数据处理功能,显著降低开发门槛,帮助用户快速实现应用构建和自动化。
Dify、NocoBase、Appsmith
分布式工作流和编排工具
这三个工具专注于分布式系统的工作流管理,处理长时间运行的任务和复杂微服务编排。
Conductor、Temporal、Cadence
项目和团队管理工具
项目管理工具结合工作流自动化功能,支持任务分配、进度跟踪和团队协作。
OpenProject
客户支持与服务工具
通过工作流自动化提升客户支持效率,同时整合多渠道互动。
UVdesk
事件驱动和自动化集成工具
这类工具围绕事件驱动的工作流设计,擅长连接跨系统数据流动并实现复杂任务自动化。
Pipedream、Elsa Core
这些项目展示了工作流的核心价值:简化复杂流程、提升效率、支持扩展性。
具体来说:无代码/低代码工具结合工作流管理,让用户无需技术背景即可构建业务流程;分布式编排工具通过工作流解决长时间运行任务和复杂事务管理问题,适合微服务架构;项目管理与客户支持:通过内置的工作流自动化功能优化团队协作和客户服务;事件驱动与自动化集成:专注于实时事件处理和跨平台集成,让开发者快速构建端到端解决方案。
这就是工作流赋能的多样性。你可以根据自身的业务需求和技术背景,从这些项目中选择最适合的工具,以高效实现工作流管理和自动化目标。
最后,如果这篇文章对你了解开源工作流工具有所帮助,欢迎帮助我们分享给更多的人。❤️
相关阅读:
- GitHub上 Star 数量最多的 Airtable 开源替代者
- GitHub Star 数量前 13 的自托管项目
- GitHub Star 数量前 12 的开源无代码工具
- GitHub 上 Stars 数量最多的 8 个开源 CRUD 项目
- GitHub Star 数量前 11 的开源内部工具
- GitHub Star 数量前 15 的开源低代码项目
- GitHub Star 数量前 5 的开源无代码/低代码应用开发平台
相关文章:
⭐️ GitHub Star 数量前十的工作流项目
文章开始前,我们先做个小调查:在日常工作中,你会使用自动化工作流工具吗?🙋 事实上,工作流工具已经变成了提升效率的关键。其实在此之前我们已经写过一篇博客,跟大家分享五个好用的工作流工具。…...
uni-app中的样式尺寸单位,px,rpx,vh,vw
uni-app 支持less、sass、scss、stylus等预处理器。 尺寸单位 uni-app 支持的通用 css 单位包括 px、rpx px 即屏幕像素rpx 即响应式 px,一种根据屏幕宽度自适应的动态单位。以 750 宽的屏幕为基准,**750rpx 恰好为屏幕宽度。**屏幕变宽,r…...
跳表(Skip List)
跳表(Skip List) 跳表是一种用于快速查找、插入和删除的概率型数据结构,通常用于替代平衡二叉搜索树(如 AVL 树或红黑树)。跳表通过在有序链表的基础上增加多层索引,使得查找操作的平均时间复杂度降低&…...
103.【C语言】数据结构之建堆的时间复杂度分析
1.向下调整的时间复杂度 推导 设树高为h 发现如下规律 按最坏的情况考虑(即调整次数最多) 第1层,有个节点,最多向上调整h-1次 第2层,有个节点,最多向上调整h-2次 第3层,有个节点,最多向上调整h-3次 第4层,有个节点,最多向上调整h-4次 ... 第h-1层,有个节点,最多向上调整1次 第…...
数字信号处理实验报告四:IIR数字滤波器设计及软件实现
1.实验目的 (1)熟悉用双线性变换法设计IIR数字滤波器的原理与方法; (2)学会调用MATLAB信号处理工具箱中滤波器设计函数(或滤波器设计分析工具fdatool)设计各种IIR数字滤波器,学会根据滤波需求确定滤波器指标参数。 (3)掌握IIR数字滤波器的MATLAB实现方法。 (3)…...
Flutter:encrypt插件 AES加密处理
1、pubspec.yaml导入插件 cupertino_icons: ^1.0.8 # 密码加密 encrypt: 5.0.3encrypt封装 import package:encrypt/encrypt.dart; /// 加密类 class EncryptUtil {static final EncryptUtil _instance EncryptUtil._internal();factory EncryptUtil() > _instance;Encrypt…...
软银集团孙正义再度加码OpenAI,近屿智能专注AI人才培养
11月28日凌晨,全球最大财经CNBC报道,软银集团创始人兼CEO孙正义再次向人工智能领域的领军企业OpenAI投资了15亿美元。软银对OpenAI的投资已不是首次。就在上个月,软银已在OpenAI的上一轮融资中注入了5亿美元的资金。但他一直寻求获得OpenAI更…...
windows11下的Ubuntu(WSL)中安装界面测试ROS
症状:我在WSL(Ubuntu)中我自己的用户名下面安装好了ROS,输入命令行能用,就是不弹出窗口。 首先到windows应用商店安装Ubuntu,我这里安装的是20.04,然后安装对应的ROS(Noetic版本). 然后windows安装VcXsrv. Ubuntu安装xfce4。 …...
Stable Diffusion 3详解
🌺系列文章推荐🌺 扩散模型系列文章正在持续的更新,更新节奏如下,先更新SD模型讲解,再更新相关的微调方法文章,敬请期待!!!(本文及其之前的文章均已更新&…...
【CSS】设置文本超出N行省略
文章目录 基本使用 这种方法主要是针对Webkit浏览器,因此可能在一些非Chrome浏览器中不适用。 基本使用 例如:设置文本超出两行显示省略号。 核心代码: .ellipsis-multiline {display: -webkit-box; -webkit-box-orient: vertical; /* 设置…...
Python绘画:蛋糕
Python绘画:蛋糕 🐸 前言 🐸🐋 效果图 🐋🐉 代码 🐉 🌵🌲🌳🌴🌿🍀☘️🌱🍃🎋…...
使用wget在清华镜像站下载Anaconda报错ERROR 403: Forbidden.
问题描述 使用wget在清华镜像站下载Anaconda报错ERROR 403: Forbidden. Resolving mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)… 101.6.15.130, 2402:f000:1:400::2 Connecting to mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)|101.6.15…...
道可云人工智能元宇宙每日资讯|第三届京西地区发展论坛成功召开
道可云元宇宙每日简报(2024年11月27日)讯,今日元宇宙新鲜事有: 工信部等十二部门印发《5G规模化应用“扬帆”行动升级方案》 11月25日,工业和信息化部等十二部门印发《5G规模化应用“扬帆”行动升级方案》。《方案》…...
web安全之信息收集
在信息收集中,最主要是就是收集服务器的配置信息和网站的敏感信息,其中包括域名及子域名信息,目标网站系统,CMS指纹,目标网站真实IP,开放端口等。换句话说,只要是与目标网站相关的信息,我们都应该去尽量搜集。 1.1收集域名信息 知道目标的域名之后,获取域名的注册信…...
Google Earth Engine APP(GEE) ——基于多种机器学习多源遥感不同变量组合下的森林地表生物量模型预测APP
目录 Arguments: Returns: ui.Select Arguments: Returns: ui.Chart Arguments: Returns: ui.Chart Arguments: Returns: Classifier Arguments: Returns: Classifier Arguments: Returns: Classifier 本代码的主要功能是将我们提前准备好的森林生物量样本点上传到…...
Redis开发02:redis.windows-service.conf 默认配置文件解析与注解
文件位置:redis安装目录下的 redis.windows-service.conf ,存放了redis服务的相关配置,下面列举出默认配置的含义: 配置项含义bind 127.0.0.1限制 Redis 只监听本地回环地址,意味着只能从本地连接 Redis。protected-m…...
webrtc 3A移植以及实时处理
文章目录 前言一、交叉编译1.Pulse Audio webrtc-audio-processing2.交叉编译 二、基于alsa进行实时3A处理1.demo源码2.注意项3.效果展示 总结 前言 由于工作需要,硬件3A中的AEC效果实在太差,后面使用SpeexDSP的软3A,效果依旧不是很好&#…...
Android so库的编译
在没弄明白so库编译的关系前,直接看网上博主的博文,常常会觉得云里雾里的,为什么一会儿通过Android工程cmake编译,一会儿又通过NDK命令去编译。两者编译的so库有什么区别? android版第三方库编译总体思路: 对于新手小白来说搞明白上面的总体思路图很有必…...
Reachy 2,专为AI与机器人实验室打造的卓越开源双臂移动操作平台!
近期,花粉机器人(POLLEN ROBOTICS)隆重推出Reachy 2仿生机器人——下一代开源操作平台,为AI与机器人实验室带来理想的双臂移动操作科研平台! Reachy 2的仿生性: 》拥有两个基于Maxon无刷电机的仿生7自由度…...
Jest 测试异步函数
异步编程的发展历史 异步函数,就不用我描述了,JS是单线程的,所以没有办法处理异步问题,但是可以通过其他的机制实现 回调函数 例如,我们写一个定时器,在函数fetchData中,有一个延时处理的函数,但是,你有不能等他,如果他是一年呢? 所以,我们给他一个回调函数,来等他执行完返回处…...
linux安全管理-防火墙配置
1. 开启系统防火墙 1、检查内容 检查操作系统是否开启防火墙; 2、配置要求 操作系统开启防火墙; 3、配置方法 systemctl status firewalld ##查看系统防火墙运行状态 systemctl start firewalld ##启动防火墙 systemctl restart firewalld ##重启防火墙…...
Blender 运行python脚本
Blender 运行python脚本 步骤 1:打开 Blender 首先,打开 Blender 软件。你可以从官方网站 [blender.org]( 下载最新的 Blender 版本,并按照安装向导进行安装。 步骤 2:打开“文本编辑器”面板 在 Blender 的默认布局中ÿ…...
Three.js CSS2D/CSS3D渲染器
在Three.js开发过程中,有时需要将 HTML 元素与 Three.js 渲染的 3D 场景相结合,这就需要用到 CSS2DRenderer 和 CSS3DRenderer。本文将详细介绍这两种渲染器的原理及其应用 一、CSS2DRenderer 渲染器 概述 CSS2DRenderer 渲染器用于在 3D 场景中渲染纯…...
centos7 yum install 失败,mirrorlist.centos.org连接不上
由于centos7停止支持,导致mirrorlist.centos.orgdns解析都是失效啦,yum命令没法安装程序. 换一个镜像源就好 sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/…...
BGP协议路由黑洞
一、实验环境 1、分公司与运营商AS自治系统内运行IGP路由协议OSPF、RIP或静态路由,AS自治系统内通过IBGP路由协议建立BGP邻居关系。 2、公司AS自治系统与运营商AS自治系统间运行EBGP路由协议。 3、通过loopback建立IBGP与EBGP邻居关系,发挥loopback建立…...
学习ASP.NET Core的身份认证(基于Session的身份认证1)
ASP.NET Core使用Session也可以实现身份认证,关于Session的介绍请见参考文献5。基于Session的身份认证大致原理就是用户验证成功后将用户信息保存到Session中,然后在其它控制器中从Session中获取用户信息,用户退出时清空Session数据。百度基于…...
《Docker Registry(镜像仓库)详解》
一、引言 在容器化技术日益普及的今天,Docker 已成为众多开发者和企业的首选工具。而 Docker Registry(镜像仓库)作为 Docker 生态系统中的重要组成部分,负责存储和分发 Docker 镜像。本文将深入探讨 Docker Registry 的概念、功能…...
Mybatis
1 什么是MyBatis MyBatis是一个优秀的持久层框架,它对JDBC操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、 结果集检索等JDBC繁杂的过程代码 。…...
uniapp学习(010-3 实现H5和安卓打包上线)
零基础入门uniapp Vue3组合式API版本到咸虾米壁纸项目实战,开发打包微信小程序、抖音小程序、H5、安卓APP客户端等 总时长 23:40:00 共116P 此文章包含第114p-116p的内容 文章目录 H5配置文件设置开始打包上传代码 安卓设置模拟器启动设置基础配置设置图标启动界面…...
IPGuard与Ping32结合,提供企业级数据加密与防泄密解决方案,全面保障敏感数据安全
随着数字化转型的深入推进,企业面临着日益复杂的安全挑战。如何在确保数据流通的同时,保障企业的核心资产不被泄露,是每个企业必须面对的难题。为此,Ping32与IPGuard联合推出了一套全面的企业级数据加密与防泄密解决方案ÿ…...
爬虫与反爬-旋转验证码突破方案(知名短视频、TK海外版 及 某东等等)
概述:文本对旋转验证码进行了突破及讲述了实现原理,代码使用纯算法 OpenCV,使用代价较小同时不用安装一大堆AI训练相关的模组,方便且能够快速上手 当前亲自验证了能够支持的网站:国内知名短视频平台、海外版 以及 某东…...
霍夫变换:原理剖析与 OpenCV 应用实例
简介:本文围绕霍夫变换相关内容展开,先是讲解霍夫变换基本原理,包含从 xy 坐标系到 kb 坐标系及极坐标系的映射等。接着介绍了 cv2.HoughLines、cv2.HoughLinesP 概率霍夫变换、cv2.HoughCircles 霍夫圆变换的函数用法、参数含义、与常规霍夫…...
虚拟机之间复制文件
在防火墙关闭的前提下,您可以通过几种不同的方法将文件从一个虚拟机复制到另一个虚拟机。这里,我们假设您想要从 IP 地址为 192.168.4.5 的虚拟机上的 /tmp 文件夹复制文件到当前虚拟机(192.168.4.6)的 /tmp 文件夹下。以下是几种…...
漏洞管理与补丁管理详解:系统安全的基石
文章目录 漏洞管理与补丁管理详解:系统安全的基石什么是漏洞管理?什么是补丁管理?漏洞管理与补丁管理的联系与区别实施漏洞管理与补丁管理的最佳实践 漏洞管理与补丁管理详解:系统安全的基石 在网络安全的防护体系中,…...
ArrayList与LinkedList的区别是什么?
ArrayList与LinkedList是Java集合框架中实现List接口的两种常见类,它们各自具有独特的数据结构和特点,适用于不同的应用场景。 一、底层数据结构 ArrayList和LinkedList的底层数据结构是它们之间最本质的区别。 ArrayList: ArrayList是基于…...
《Java-数组》
《Java-数组》 1.数组介绍 概念:数组是一种容器,用来存储同种数据类型的多个值。注意:数组容器在存储数据的时候,需要结合隐式转换考虑; 2.数组的定义和初始化 2.1数组定义 定义格式1(常用)…...
Docker 实战:搭建本地 Registry 私有镜像仓库及批量导入脚本
前言:在我之前的博客中,我分享了 Harbor 仓库搭建的详细操作步骤。然而,在实际的生产环境中,并非每个 Docker 环境都需要部署一个规模庞大的 Harbor 仓库。有时,一个轻量级的本地 Registry 私有镜像仓库会更为便捷。本…...
MySQL 启动失败问题分析与解决方案:`mysqld.service failed to run ‘start-pre‘ task`
目录 前言1. 问题背景2. 错误分析2.1 错误信息详解2.2 可能原因 3. 问题排查与解决方案3.1 检查 MySQL 错误日志3.2 验证 MySQL 配置文件3.3 检查文件和目录权限3.4 手动启动 MySQL 服务3.5 修复 systemd 配置文件3.6 验证依赖环境 4. 进一步优化与自动化处理结语 前言 在日常…...
java-分而治之算法
分而治之(Divide and Conquer)算法是一种解决问题的策略,它将一个复杂的问题分解成若干个相同或相似的子问题,递归地解决这些子问题,然后将它们的解合并以解决原始问题。这种算法通常用于排序、搜索、数学计算等领域。…...
透明化教育管理:看板如何提升班级整体效率
随着教育信息化的不断推进,传统的教学和班级管理方式逐渐暴露出时间紧、任务繁、多任务并行等问题。看板管理,作为一种高效的可视化工具,正在成为教师管理教学、提升班级协作与互动的重要利器。通过透明化、系统化的管理方式,看板…...
UDP客户端服务器通信
在这篇博客中,我们将探索 UDP(用户数据报协议) 通信,简要地说,UDP 是一种无连接、快速但不可靠的通信协议,适用于需要快速数据传输但对丢包容忍的场景,比如视频流和在线游戏。就像《我是如此相信…...
helm手动部署Kafka集群
1、到指定node节点创建pv需挂载的目录,若有分布式存储可忽略 mkdir -p /data/kafka-data-0 mkdir -p /data/kafka-data-1 mkdir -p /data/kafka-data-2 mkdir -p /data/kafka-zookeeper-data-0 2、创建pvc ---apiVersion: v1kind: PersistentVolumemetadata:n…...
vue3 ajax获取json数组排序举例
使用axios获取接口数据 可以在代码中安装axios包,并写入到package.json文件: npm install axios -S接口调用代码举例如下: const fetchScore async () > {try {const res await axios.get(http://127.0.0.1:8000/score/${userInput.v…...
c/c++ 用easyx图形库写一个射击游戏
#include <graphics.h> #include <conio.h> #include <stdlib.h> #include <time.h>// 定义游戏窗口的大小 #define WINDOW_WIDTH 800 #define WINDOW_HEIGHT 600// 定义玩家和目标的尺寸 #define PLAYER_SIZE 50 #define TARGET_SIZE 20// 玩家的结构…...
大数据新视界 -- 大数据大厂之 Hive 数据安全:权限管理体系的深度解读(上)(15/ 30)
💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…...
gitee:创建仓库,存入本地文件至仓库
一、git下载 git:下载与安装-CSDN博客https://blog.csdn.net/weixin_46001736/article/details/144107485?sharetypeblogdetail&sharerId144107485&sharereferPC&sharesourceweixin_46001736&spm1011.2480.3001.8118 二、创建仓库 1、主页面->右上角新增…...
联想品牌的电脑 Bios 快捷键是什么?如何进入 Bios 设置?
在某些情况下,您可能需要通过U盘来安装操作系统或进行系统修复。对于联想电脑用户来说,了解如何设置U盘作为启动设备是非常有用的技能之一。本文简鹿办公将指导您如何使用联想电脑的 U 盘启动快捷键来实现这一目标。 联想笔记本 对于大多数联想笔记本电…...
微信小程序用户登录页面制作教程
微信小程序用户登录页面制作教程 前言 在微信小程序的开发过程中,用户登录是一个至关重要的功能。通过用户登录,我们可以为用户提供个性化的体验,保护用户数据,并实现更复杂的业务逻辑。本文将为您详细讲解如何制作一个用户登录页面,包括设计思路、代码示例以及实现细节…...
Flink细粒度的资源管理
Apache Flink致力于为所有应用程序自动导出合理的默认资源需求。对于希望根据其特定场景微调其资源消耗的用户,Flink提供了细粒度的资源管理。这里我们就来看下细粒度的资源管理如何使用。(注意该功能目前仅对DataStream API有用) 1. 适用场景 使用细粒度的资源管理的可能…...
Jenkins环境搭建及简单介绍
一、jenkins介绍 1、持续集成(CI) Continuous integration 持续集成 团队开发成员每天都有集成他们的工作,通过每个成员每天至少集成一次,也就意味着一天有可 能多次集成。在工作中我们引入持续集成,通过持续集成自动…...