becklyn/ddd-doctrine-bridge
Doctrine ORM bridge for becklyn/ddd-core: provides event store and transaction manager implementations plus ORM mappings and a migration. Includes a DBAL type override to persist microsecond-precision event timestamps (MySQL/Oracle).
becklyn/ddd-core. It provides event sourcing and transactional integrity via Doctrine, aligning with aggregate roots, domain events, and CQRS patterns. However, it introduces DDD-specific complexity (e.g., event versioning, aggregate snapshotting) that may not be needed for simpler Laravel applications.PendingDispatch). Requires explicit coordination between synchronous (Doctrine) and asynchronous (Laravel) workflows.DateTimeImmutableMicrosecondsType adds high-granularity timestamps for compliance (e.g., financial systems) but is MySQL/Oracle-only, limiting flexibility for PostgreSQL/SQLite users. Oracle also requires additional session initialization, adding complexity.EntityManager, EventStore, and TransactionManager.Event system with the package’s EventPublisher (e.g., via Laravel listeners or custom event bus).dispatch() or Bus).events vs. Laravel’s default tables).HttpTests, FeatureTests).becklyn/ddd-core may limit flexibility if DDD requirements evolve.spatie/laravel-event-sourcing, prooph/event-sourcing) been ruled out for Laravel-specific needs?doctrine/dbal, doctrine/orm, and becklyn/ddd-doctrine-bridge.EntityManager in the service container (e.g., via a custom service provider).EventStore table mappings).EventStore, TransactionManager, and EventPublisher as Laravel services.Event system and the package’s EventPublisher.DateTimeImmutableMicrosecondsType for MySQL/Oracle (or disable if using other databases).EventStore tables with indexes on aggregate_id, event_id, and timestamp for performance.Order) to use the event store.EventStore and existing tables (e.g., Eloquent models).EventStore.TransactionManager (e.g., wrap AggregateRoot operations in transactions).App\Domain\Order\Entity\Order) and avoid overlapping table names.Event system is not directly compatible with the package’s EventPublisher. Build a bridge (e.g., a LaravelEventToDomainEventAdapter).EntityManager and EventStore in Laravel’s service container.EventStoreHow can I help you explore Laravel packages today?