Category: Programming

  • Experimenting with Event Sourcing and Ecotone

    I’ve just published a new repo, a side project where I’m experimenting with Event Sourcing, CQRS, and the Ecotone framework in a Symfony 7 environment.

    This is a personal learning project, not something production-ready. The goal is to better understand how to design event-driven systems in PHP using real-world structures like aggregates, value objects, and projections. As a playground, I’m building a turn-based strategy game (inspired by Civilization) -just enough to have a meaningful domain to model.

    Right now, the repo includes:

    • Symfony 7.3 backend with Ecotone (commands, events, projections),
    • Early frontend setup using Vite, Symfony UX and PixiJS for rendering a hex map,
    • A bunch of evolving domain logic for turns, players, and cities.

    Again – this is an experimental setup for learning, so expect the code to change frequently. But if you’re also exploring Ecotone or curious how event sourcing might work in a Symfony project, feel free to check it out, leave feedback, or just follow along.

    github.com/ernestwisniewski/symfony-of-ages

  • Symfony 7.3 – New features that grabbed my attention

    Symfony 7.3 may be a “minor” release, but these five additions will shave boilerplate off everyday code, boost performance where it hurts and generally make life nicer for Symfony developers.

    (more…)
  • Projections – Transforming Events into Read Models

    In an event-sourced architecture, the entire history of changes to the application’s state is stored as a sequence of events. However, to effectively work with this data, we often need optimized read models. This is where projections come into play. In today’s post, I’ll show you how to set up and implement projections in Ecotone, allowing you to easily transform events into the current state of your system.

    (more…)
  • Strategic DDD – Key Building Blocks and Their Role in Architecture

    Domain-Driven Design is an approach that helps build software reflecting real-world business logic. Within DDD, we distinguish building blocks – essential elements of domain modeling. Here’s their breakdown and application.

    (more…)
  • Introduction to Domain-Driven Design: What Benefits Does It Bring to Business?

    In the world of rapidly changing business requirements, creating software that effectively meets user needs is a key challenge. This is where Domain-Driven Design (DDD) comes in—a methodology that places the business domain at the center of the application design process.

    (more…)