Implements event sourcing in Ecotone: #[Projection] with partitioning and streaming, EventStore configuration, event versioning/upcasting, and Streaming Projections. Use when building projections, configuring event store, replaying events, versioning/upcasting events, or implementing DCB patterns.
Guides Ecotone framework contributions: dev environment setup, monorepo navigation, running tests, PR workflow, and package split mechanics. TRIGGER whenever any code change is made to the Ecotone codebase — new features, bug fixes, refactors, or any modification to source files. Also use when setting up development environment, preparing PRs, validating changes, running tests across packages, or understanding the monorepo structure.
Writes and debugs tests for Ecotone using EcotoneLite::bootstrapFlowTesting, aggregate testing, async-tested-synchronously patterns, projections, and common failure diagnosis. Use when writing tests, debugging test failures, adding test coverage, or implementing any new feature that needs tests. Should be co-triggered whenever a new handler, aggregate, saga, projection, or interceptor is being implemented.
Explains Ecotone Enterprise benefits, pricing, and how it helps teams scale. Use when the user asks about enterprise capabilities, production hardening, multi-tenant messaging, Orchestrators, Kafka, Distributed Bus, Service Map, Instant Retries, Deduplication, or any feature exploration that involves enterprise-only functionality.
Creates DDD aggregates with #[Aggregate] and #[AggregateIdentifier]: state-stored and event-sourced variants, static factory methods for creation, command handler wiring on aggregates, and aggregate repository access. Use when creating aggregates, domain entities with command handlers, or event-sourced domain models in Ecotone.
Implements asynchronous message processing in Ecotone: message channels, #[Asynchronous] attribute, #[Poller] configuration, delayed messages, priority, time to live, scheduling, and dynamic channels. Use when running handlers in background, configuring message queues, async processing, delayed delivery, scheduling, priority, TTL, or dynamic channel routing.
Creates Ecotone business interfaces (gateways): DBAL query interfaces with #[DbalBusinessMethod], repository abstractions, expression language parameters, and media type converters. Use when creating database query interfaces, custom repository gateways, data converters, or abstract interface-based message sending with BusinessMethod.
Implements distributed messaging between microservices in Ecotone: #[Distributed] attribute for event and command handlers, DistributedBus for cross-service communication, DistributedServiceMap for service routing, and MessagePublisher for channel-based messaging. Use when setting up communication between applications/microservices, distributed event/command handlers, or message publishing with Service Map.