PHPackages                             grazulex/laravel-flowpipe - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Testing &amp; Quality](/categories/testing)
4. /
5. grazulex/laravel-flowpipe

ActiveLibrary[Testing &amp; Quality](/categories/testing)

grazulex/laravel-flowpipe
=========================

Composable, traceable and declarative Flow Pipelines for Laravel. A modern alternative to Laravel's Pipeline, with support for conditional steps, nested flows, tracing, validation, and more.

v1.2.0(4mo ago)19593↓66.7%MITPHPPHP ^8.3CI passing

Since Jul 20Pushed 4mo ago1 watchersCompare

[ Source](https://github.com/Grazulex/laravel-flowpipe)[ Packagist](https://packagist.org/packages/grazulex/laravel-flowpipe)[ Docs](https://github.com/grazulex/laravel-flowpipe)[ Fund](https://www.buymeacoffee.com/Grazulex)[ Fund](https://paypal.me/strauven)[ RSS](/packages/grazulex-laravel-flowpipe/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (2)Dependencies (11)Versions (3)Used By (0)

Laravel Flowpipe
================

[](#laravel-flowpipe)

 [![Laravel Flowpipe](new_logo.png)](new_logo.png)**Composable, traceable and declarative Flow Pipelines for Laravel**

*A modern alternative to Laravel's Pipeline with advanced features for complex workflow management*

[![Latest Version](https://camo.githubusercontent.com/09a4e92552a426abfdd909d31c323e288ef8b513da6709375ee66a7ff665ce3a/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6772617a756c65782f6c61726176656c2d666c6f77706970652e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/grazulex/laravel-flowpipe)[![Total Downloads](https://camo.githubusercontent.com/9e7cc97b6a7f92173969a24126d68db9826a9b565a1ee3af23cd0263ef53de36/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6772617a756c65782f6c61726176656c2d666c6f77706970652e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/grazulex/laravel-flowpipe)[![License](https://camo.githubusercontent.com/1f0fa060e0025c78c34b72d176c78e1440e7566d24bc7b2762b7df293167cdd7/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6772617a756c65782f6c61726176656c2d666c6f77706970652e7376673f7374796c653d666c61742d737175617265)](https://github.com/Grazulex/laravel-flowpipe/blob/main/LICENSE.md)[![PHP Version](https://camo.githubusercontent.com/dbfd1c2270b2f145e86647e0e36770bee3f1c52619f181dfc212903ddd1b3f8a/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f6772617a756c65782f6c61726176656c2d666c6f77706970652e7376673f7374796c653d666c61742d737175617265)](https://php.net/)[![Laravel Version](https://camo.githubusercontent.com/7592d340e2de1142fa869382b819654d6a0bf7baf8e3c8aded777d652d68c01a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c61726176656c2d31322e782d6666326432303f7374796c653d666c61742d737175617265266c6f676f3d6c61726176656c)](https://laravel.com/)[![Tests](https://camo.githubusercontent.com/b3b5fdf9e021685b3e8236ef04e3e6a5196654b481644233bc70c6ab39de74c3/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f6772617a756c65782f6c61726176656c2d666c6f77706970652f74657374732e796d6c3f6272616e63683d6d61696e266c6162656c3d7465737473267374796c653d666c61742d737175617265)](https://github.com/Grazulex/laravel-flowpipe/actions)[![Code Style](https://camo.githubusercontent.com/161d70e6871f808e0439b3e7a86540993ae98775540b5a2e78226000e3c419c7/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f636f64652532307374796c652d70696e742d3030303030303f7374796c653d666c61742d737175617265266c6f676f3d6c61726176656c)](https://github.com/laravel/pint)

---

🚀 Overview
----------

[](#-overview)

Laravel Flowpipe is a powerful, modern alternative to Laravel's built-in Pipeline package that provides **composable**, **traceable**, and **declarative** flow pipelines. Perfect for building complex business workflows, data processing pipelines, user registration flows, API integrations, and any scenario where you need reliable, maintainable, and testable step-by-step processing.

✨ Key Features
--------------

[](#-key-features)

- 🚀 **Fluent API** - Chainable, expressive syntax
- 🔄 **Flexible Steps** - Support for closures, classes, and custom steps
- 🎯 **Conditional Logic** - Built-in conditional step execution
- 📊 **Tracing &amp; Debugging** - Track execution flow and performance
- 🛡️ **Advanced Error Handling** - Retry, fallback, and compensation strategies
- 🔗 **Step Groups** - Reusable, named collections of steps
- 🎯 **Nested Flows** - Create isolated sub-workflows for complex logic
- 📋 **YAML Support** - Define flows in YAML for easy configuration
- 🧪 **Test-Friendly** - Built-in test tracer for easy testing
- 🎨 **Artisan Commands** - Full CLI support for flow management
- ✅ **Flow Validation** - Validate flow definitions with comprehensive error reporting
- 📈 **Export &amp; Documentation** - Export to JSON, Mermaid, and Markdown

📦 Installation
--------------

[](#-installation)

Install the package via Composer:

```
composer require grazulex/laravel-flowpipe
```

> **💡 Auto-Discovery**: The service provider will be automatically registered thanks to Laravel's package auto-discovery.

⚡ Quick Start
-------------

[](#-quick-start)

### 🚀 Programmatic API

[](#-programmatic-api)

```
use Grazulex\LaravelFlowpipe\Flowpipe;

$result = Flowpipe::make()
    ->send('Hello World')
    ->through([
        fn($data, $next) => $next(strtoupper($data)),
        fn($data, $next) => $next(str_replace(' ', '-', $data)),
        fn($data, $next) => $next($data . '!'),
    ])
    ->thenReturn();

// Result: "HELLO-WORLD!"
```

### 📋 YAML Configuration (Recommended)

[](#-yaml-configuration-recommended)

Laravel Flowpipe supports **declarative flow definitions using YAML files**, making your workflows easy to manage, version, and maintain:

**Create a flow definition** (`flow_definitions/user_registration.yaml`):

```
name: user_registration
description: Complete user registration workflow
steps:
  - type: validation
    rules:
      email: required|email
      password: required|min:8
  - type: closure
    action: App\Actions\CreateUserAccount
  - type: conditional
    condition:
      field: email_verification_required
      operator: equals
      value: true
    then:
      - type: closure
        action: App\Actions\SendVerificationEmail
  - type: group
    name: notifications
metadata:
  version: "1.0"
  author: "Your Team"
```

**Execute the flow**:

```
use Grazulex\LaravelFlowpipe\Flowpipe;

$result = Flowpipe::fromDefinition('user_registration')
    ->send($userData)
    ->thenReturn();
```

**📁 Organize with step groups** (`flow_definitions/groups/notifications.yaml`):

```
name: notifications
steps:
  - type: closure
    action: App\Actions\SendWelcomeEmail
  - type: closure
    action: App\Actions\CreateNotificationPreferences
```

> **💡 Avantages des fichiers YAML :**
>
> - ✅ **Configuration déclarative** - Définissez vos workflows sans code
> - ✅ **Réutilisabilité** - Partagez des groupes d'étapes entre différents flux
> - ✅ **Versioning facile** - Trackez les changements dans votre système de contrôle de version
> - ✅ **Collaboration** - Les non-développeurs peuvent modifier les workflows
> - ✅ **Validation** - Validation automatique des définitions avec `php artisan flowpipe:validate`

🔧 Requirements
--------------

[](#-requirements)

- **PHP 8.3+**
- **Laravel 12.0+**

📚 Complete Documentation
------------------------

[](#-complete-documentation)

For comprehensive documentation, examples, and advanced usage guides, visit our **Wiki**:

### 📖 **[👉 Laravel Flowpipe Wiki](https://github.com/Grazulex/laravel-flowpipe/wiki)**

[](#--laravel-flowpipe-wiki)

The wiki includes:

- **🚀 [Installation &amp; Setup](https://github.com/Grazulex/laravel-flowpipe/wiki/Installation-Setup)**
- **⚙️ [Configuration](https://github.com/Grazulex/laravel-flowpipe/wiki/Configuration)**
- **🎯 [Your First Flow](https://github.com/Grazulex/laravel-flowpipe/wiki/Your-First-Flow)**
- **📋 [Understanding YAML Flows](https://github.com/Grazulex/laravel-flowpipe/wiki/Understanding-YAML-Flows)**
- **🏗️ [YAML Flow Structure](https://github.com/Grazulex/laravel-flowpipe/wiki/YAML-Flow-Structure)**
- **🔧 [PHP Steps](https://github.com/Grazulex/laravel-flowpipe/wiki/PHP-Steps)**
- **🔗 [Step Groups](https://github.com/Grazulex/laravel-flowpipe/wiki/Step-Groups)**
- **🎯 [Conditions &amp; Branching](https://github.com/Grazulex/laravel-flowpipe/wiki/Conditions-Branching)**
- **🛡️ [Error Handling](https://github.com/Grazulex/laravel-flowpipe/wiki/Error-Handling)**
- **🎨 [Artisan Commands](https://github.com/Grazulex/laravel-flowpipe/wiki/Artisan-Commands)**
- **🚀 [Queue Integration](https://github.com/Grazulex/laravel-flowpipe/wiki/Queue-Integration)**
- **📝 [Example: User Registration](https://github.com/Grazulex/laravel-flowpipe/wiki/Example-User-Registration)**

---

🤝 Contributing
--------------

[](#-contributing)

Please see [CONTRIBUTING.md](CONTRIBUTING.md) for details.

🔒 Security
----------

[](#-security)

If you discover any security-related issues, please email **** instead of using the issue tracker.

📝 Changelog
-----------

[](#-changelog)

Please see [RELEASES.md](RELEASES.md) for more information on what has changed recently.

📄 License
---------

[](#-license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

👥 Credits
---------

[](#-credits)

- **[Jean-Marc Strauven](https://github.com/Grazulex)**
- **[All Contributors](../../contributors)**

💬 Support
---------

[](#-support)

- 🐛 **[Report Issues](https://github.com/Grazulex/laravel-flowpipe/issues)**
- � **[Discussions](https://github.com/Grazulex/laravel-flowpipe/discussions)**
- � **[Documentation](https://github.com/Grazulex/laravel-flowpipe/wiki)**

---

 **Laravel Flowpipe** - A modern, powerful alternative to Laravel's built-in Pipeline
 with enhanced features for complex workflow management.

###  Health Score

43

—

FairBetter than 91% of packages

Maintenance74

Regular maintenance activity

Popularity26

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 77.1% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~154 days

Total

2

Last Release

147d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/888105bd54b6b7f7905523a16a1d08eebc2e5d39b19a4c174b5961bb4d52929b?d=identicon)[Grazulex](/maintainers/Grazulex)

---

Top Contributors

[![Grazulex](https://avatars.githubusercontent.com/u/4521546?v=4)](https://github.com/Grazulex "Grazulex (81 commits)")[![Copilot](https://avatars.githubusercontent.com/in/1143301?v=4)](https://github.com/Copilot "Copilot (24 commits)")

---

Tags

laravelpackagephp8pipelinepestlaravelworkflowclean codemodularflowpipelinelaravel12php8.3stepsconditionaltraceableflowpipe

###  Code Quality

TestsPest

Static AnalysisPHPStan, Rector

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/grazulex-laravel-flowpipe/health.svg)

```
[![Health](https://phpackages.com/badges/grazulex-laravel-flowpipe/health.svg)](https://phpackages.com/packages/grazulex-laravel-flowpipe)
```

###  Alternatives

[larastan/larastan

Larastan - Discover bugs in your code without running it. A phpstan/phpstan extension for Laravel

6.4k43.5M5.2k](/packages/larastan-larastan)[laravel/horizon

Dashboard and code-driven configuration for Laravel queues.

4.1k84.2M225](/packages/laravel-horizon)[laravel/sail

Docker files for running a basic Laravel application.

1.9k186.9M1.0k](/packages/laravel-sail)[timacdonald/log-fake

A drop in fake logger for testing with the Laravel framework.

4235.9M56](/packages/timacdonald-log-fake)[laravel/roster

Detect packages &amp; approaches in use within a Laravel project

15510.4M7](/packages/laravel-roster)[grazulex/laravel-devtoolbox

Swiss-army artisan CLI for Laravel — Scan, inspect, debug, and explore every aspect of your Laravel application from the command line.

1535.4k](/packages/grazulex-laravel-devtoolbox)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
