Weave Code
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

Api Platform Event Engine Bundle Laravel Package

arnedesmedt/api-platform-event-engine-bundle

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Event-Driven Architecture (EDA) Integration: Enables seamless integration of API Platform with an event-driven workflow, allowing real-time processing of business events (e.g., order creation, user updates) via the Event Engine bundle. This supports roadmaps for scalability, microservices, or decoupled services.
  • CQRS/ES Adoption: Facilitates Command Query Responsibility Segregation (CQRS) and Event Sourcing (ES) patterns by mapping API Platform operations (e.g., POST /orders) to domain commands/events. Ideal for teams migrating from traditional CRUD to event-driven architectures.
  • Build vs. Buy: A lightweight, customizable alternative to building a custom event bus or using heavier frameworks like Symfony Messenger. Reduces dev time while maintaining flexibility (e.g., forking for niche use cases).
  • Use Cases:
    • Real-time notifications: Trigger webhooks or third-party services (e.g., Slack, Stripe) on API Platform state changes.
    • Audit trails: Log all state transitions as immutable events for compliance or analytics.
    • Decoupled workflows: Offload long-running processes (e.g., payment processing) to async workers.
    • Multi-tenant systems: Isolate event processing per tenant using aggregate roots.

When to Consider This Package

  • Adopt if:

    • Your team uses API Platform (v3.x) and needs to integrate with event-driven workflows without reinventing the wheel.
    • You’re implementing CQRS/ES and want to map HTTP operations (GET/POST/PUT/DELETE) to domain commands/events automatically.
    • You require type safety (via JSON Schema) for commands/events and aggregates.
    • Your stack includes Symfony and you’re open to forking for customization (e.g., generic configuration).
    • You need lightweight event handling (not a full-fledged message broker like RabbitMQ/Kafka).
  • Look elsewhere if:

    • You’re not using API Platform or need broader framework support (e.g., Lumen, Slim).
    • Your event system requires complex routing (e.g., dynamic event handlers, priority queues) beyond operation-type mapping.
    • You need built-in persistence for events (this assumes Event Engine handles storage).
    • Your team lacks PHP 8.1+ or Symfony experience (steep learning curve for CQRS/ES concepts).
    • You prioritize enterprise-grade features (e.g., dead-letter queues, retries) over simplicity.

How to Pitch It (Stakeholders)

For Executives:

"This package lets us bridge API Platform with event-driven workflows—turning every API call into a business event (e.g., ‘OrderCreated’). Think of it as automating the plumbing between our frontend/APIs and backend services, enabling real-time features like notifications, audits, or async processing without heavy infrastructure. It’s a low-risk way to adopt CQRS/Event Sourcing, reducing coupling and future-proofing our architecture for microservices. Upfront cost: minimal dev time; long-term gain: scalable, maintainable systems."

For Engineers:

*"This bundle maps API Platform operations to Event Engine commands with minimal boilerplate. Key benefits:

  • No manual event dispatching: POST /ordersOrderCommand::create() automatically.
  • Strong typing: Commands/events use JSON Schema (via JsonSchemaAwareRecord), catching errors early.
  • Flexible: Forkable for custom aggregate/state logic or operation mappings.
  • Lightweight: No external brokers; leverages Symfony’s Event Engine (which we’re already using). Tradeoff: Requires buying into CQRS/ES patterns (e.g., AggregateRoot, commands vs. queries). Best for teams comfortable with domain-driven design. Docs are sparse, but the code is modular—easy to extend."*
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.
directorytree/privacy-filter-classifier
directorytree/privacy-filter
datacore/hub-sdk
develia/commons
cuci/prototurk-sdk
cuci/prototurk-sdk-symfony
develia/geo-bundle
dreamzy/livewire-charts
touchestate-sdk/php-sdk
22h/doctrine-garbage-collection-bundle
agtp/agtp-php
agtp/mod-php
splash/sonata-admin
splash/metadata
splash/openapi
splash/scopes
splash/toolkit
testo/output-teamcity
testo/bridge-symfony
spatie/flare-daemon-runtime