Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Etl Core Bundle Laravel Package

boutdecode/etl-core-bundle

Symfony bundle for building configurable ETL pipelines with reusable Workflow templates and time-bound Pipeline runs. Chains Extract, Transform, and Load steps via Symfony Messenger, Workflow, and Flow-PHP, with DDD/CQS structure, status tracking, and per-run configuration overrides.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build-vs-buy for pipeline orchestration. The package provides a reusable Workflow (template) → Pipeline (instance) → Step (executable) abstraction with a Symfony Workflow state machine (pending → in_progress → completed/failed), history entities, and middleware hooks. It is a candidate to evaluate only if you are already committed to Symfony and have recurring ETL-shaped work (imports, data syncs, file ingestion) that would otherwise be rebuilt per feature.
  • Standardizing internal data-movement features. If your roadmap includes multiple "import X into system," "sync Y from third-party API," or "export Z to a file/database" stories, this bundle proposes a consistent contract (Extract/Transform/Load steps, shared Context, per-step configuration), which helps PMs argue for a platform-shaped solution over N bespoke scripts.
  • Roadmap risk assessment for a "data platform" bet. Because it forces you to own the Doctrine entities (it ships abstract classes only), it is deliberately a framework, not a product. That signals a library-style investment — the product decision is really "do we want to fund a small internal ETL platform or keep buying/integrating a SaaS/queue-based tool?"
  • Observability and audit-trail requirements. Built-in PipelineHistory / StepHistory entities directly support compliance and debugging features ("what ran, when, with what input, and what did each step return?"). Useful when a product requirement demands run-level traceability without building it separately.

When to Consider This Package

Consider it only if all of the following hold:

  • Your stack is Symfony 6.4/7.x on PHP 8.2+ (this is a Symfony bundle, not a Laravel package — treat the "Laravel" framing in the intake as a misclassification and confirm with engineering).
  • You already use Doctrine ORM 3.6, Symfony Messenger, and (ideally) Symfony Workflow — the bundle hard-couples to all three and exposes no configurable keys.
  • You have in-house Symfony engineers comfortable with DDD, CQS, and middleware patterns, and are willing to author and maintain the entity layer, migrations, and custom steps yourselves.
  • Your ETL needs align with the provided primitives (CSV/API/XML extractors, filter/mapping transformers, JSON/database loaders) or you are prepared to write custom ExecutableStep classes.
  • You are prepared to vendor or fork the code: the ecosystem signals are minimal (2 github stars, 0 dependents, an "opportunity" score of ~28, and a release date that appears forward-dated). Support, security patching, and Symfony 8.x compatibility are effectively your responsibility.
  • You are running a proving-ground or internal-tooling initiative where time-to-orchestration beats ecosystem maturity; a wrong choice is cheap to rip out.

Look elsewhere if:

  • You are on Laravel — this package is a non-starter without deep Symfony integration work.
  • You need a guaranteed-supported, well-populated library. Compare against established orchestrators (Symfony Scheduler alone, a workflow engine like Temporal/Camunda, Airflow/Prefect for batch, or managed ETL tools), and against simple Symfony Messenger pipelines if your needs are modest.
  • Your data volume is high-throughput or streaming — the bundle's step/history model implies per-run persistence and is oriented toward batch/bounded pipelines.
  • You do not want to own entities, migrations, and step implementations — that is explicitly out of scope for the bundle.
  • You need multiple Symfony versions supported over a multi-year horizon, or a vendor SLA.

How to Pitch It (Stakeholders)

For executives: "We evaluated an open-source Symfony bundle that provides the skeleton of a data-pipeline engine — the template/instance model, retries and state machine, and run history. It is technically promising in the right context but is a low-maturity, low-adoption community project (2 stars, no known dependents), so I do not recommend it as a strategic platform dependency. My recommendation is to treat it as a reference design we borrow from, not a library we adopt, unless engineering confirms we are already deeply on Symfony + Doctrine + Messenger and wants to save 3–6 weeks of scaffolding. Either way, the product decision it informs is whether we fund a small internal ETL platform — that decision can be made independently of this specific package."

For engineering: "It's a Symfony 6.4/7 bundle (not Laravel) built on Flow-PHP + Symfony Messenger + Workflow, with DDD/CQS layering, tagged ExecutableStep plugins, middleware chains, and abstract entities you must materialize and migrate yourself. Pros: clean extension points, 243 unit tests, opinionated contracts that would force consistency across pipeline features. Cons: hard-coded service IDs (no config namespace), no shipped entities, no vendor support, sparse ecosystem, and a suspicious forward-dated release. Suggest a 2-day spike: build one real pipeline (e.g., a CSV import) end-to-end in a throwaway Symfony app, measure the effort saved versus a plain Messenger-based pipeline, and audit its dependency health (flow-php, Doctrine ORM 3.6, Symfony 7.x) before we commit."

Bottom line for the go/no-go meeting: Adopt patterns (Workflow vs Pipeline separation, Context, step middleware) with high confidence; adopt the package as a dependency only with explicit engineering sponsorship, a fork/vendor strategy, and a defined boundary so it can be replaced without disrupting product roadmaps.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
teamzac/geocoder
ideatica/config-writer
keaton-php/pipe-dream
jacksonwebservices/laravel-user-suite
maksimru/conditional-laravel-debugbar
gismatul/nova-support-chat
gismatul/laravel-support-chat
networkrailbusinesssystems/oracle-api
alphabalex/messaging-made-easy
rawphp/warp
shootkiran/merobug
narakode/fineauth
numencode/wn-syncops-plugin
ibnnajjaar/mib-global-pay
ably/pubsub-server
mstfkhazaal/defender
mfonte/base62x
karnoweb/metapilot
tobya/bcsapiwrapper
swalker2/cpanel