digitalstate/bpm-camunda-sdk
Laravel/PHP SDK for interacting with Camunda BPM/Platform REST APIs. Helps connect your app to process and task automation: start process instances, manage tasks, query history, and integrate workflows from PHP with simple, framework-friendly helpers.
digitalstate/bpm-camunda-sdk provides a PHP-centric abstraction for interacting with Camunda BPM, a workflow engine. This is a strong fit for Laravel-based applications requiring business process automation, workflow orchestration, or BPMN-compliant task management.CamundaClient facade).Authorization headers).| Risk | Mitigation Strategy |
|---|---|
| Camunda Version Lock | Pin SDK to a specific Camunda version (e.g., 7.18.x) to avoid breaking changes. |
| Latency in Async Workflows | Use Laravel Queues + Camunda listeners to offload heavy tasks. |
| Error Handling Gaps | Implement custom exceptions for Camunda-specific errors (e.g., ProcessNotFound). |
| SDK Maturity | Test thoroughly; contribute to the repo if critical features are missing. |
| State Consistency | Use Laravel transactions + Camunda compensating transactions for rollbacks. |
process_id → Laravel resource_id mappings).app/Providers/CamundaServiceProvider.php).Camunda::startProcess()).ProcessCompleted → trigger Laravel job).route:webhook to receive Camunda events.| Component | Compatibility Notes |
|---|---|
| Laravel HTTP | SDK uses Guzzle under the hood; align with Laravel’s HTTP client config. |
| Auth | Supports Camunda’s Authorization header; integrate with Laravel’s auth:api. |
| Events | Camunda events (e.g., PROCESS_COMPLETED) can trigger Laravel events via listeners. |
| Testing | Use Pest/Laravel Testing + Camunda’s test containers (Docker) for workflow tests. |
| Docker | Co-locate Laravel + Camunda in Docker for local dev (e.g., docker-compose.yml). |
composer require digitalstate/bpm-camunda-sdk.php artisan vendor:publish --provider="DigitalState\CamundaSdk\CamundaSdkServiceProvider".$camunda->process()->start("orderApprovalProcess", ["orderId" => 123]).$camunda->task()->list(["assignee" => "user@example.com"]).CompleteTaskJob).POST /camunda-webhook).composer.json to avoid surprises.resources/bpmn/).camunda.log) and Laravel debug mode.connect_timeout in SDK config for slow APIs.spatie/laravel-activitylog for auditing.php artisan queue:work) to handle Camunda task volume.task-list).| Failure Scenario | Impact | Mitigation |
|---|---|---|
| **Camunda Service Down |
How can I help you explore Laravel packages today?