Ismael Celis

Baltic Ruby 2025 talk: an Event-Sourced programming model for Ruby 1 minutes read , , ,
Video of a presentation on Ruby and Event Sourcing I gave at Baltic Ruby 2025 back in June. The code samples lost formatting during editing (my fault: use images next time!) but all in all I think it’s a decent summary of where my ideas were a few months ago. Watch the talk on YouTube
Read more →
Said elsewhere (August 2025) 5 minutes read , , ,

Things I've said on Bluesky in August 2025.

Identity and behaviour 7 minutes read ,

In Object Oriented programming, identity and behaviour are often conflated. But it can be usefuk to think of them as different concepts.

Give it time 9 minutes read , ,

Modeling your domain as timelines instead of object graphs

Dead Code Podcast Notes 4 minutes read , ,

Notes from my Dead Code Podcast episode on Event Sourcing and Ruby.

What do commands do in Event Sourcing 7 minutes read , , ,

Understanding the role of commands in Event Sourcing

The Decide, Evolve, React pattern in Ruby 11 minutes read , ,

The Decide, Evolve, React pattern in Ruby, explained step by step

Railway-Oriented Pipelines in Ruby pt. 5: Testing pipelines 2 minutes read , , ,

Testing Railway-oriented pipelines in Ruby.

Railway-Oriented Pipelines in Ruby pt. 4: Middleware 5 minutes read , , ,

Implementing middleware in a Railway-oriented pipeline in Ruby.

Railway-Oriented Pipelines in Ruby pt. 3: Extending pipelines 4 minutes read , , ,

Implementing domain-specific steps and extending a Railway-oriented pipelines in Ruby.

Railway-Oriented Pipelines in Ruby pt.2: User input, errors and metadata 5 minutes read , , ,

Handling user input, errors and metadata in a Railway-oriented pipeline in Ruby.

Practical Railway-Oriented Pipelines in Ruby 7 minutes read , , ,

A simplified approach to building composable data pipelines in Ruby, with examples and use cases.

Event Sourcing with Ruby examples. The Command layer. 11 minutes read , , , ,

The Command Layer is the place where business logic happens, user input is handled and decisions are made. In this article I explore the role of the Command Layer in event-sourced systems

Event Sourcing with Ruby examples. The Event Store interface. 3 minutes read , , , ,

The Event Store interface is the canonical data store in event sourcing, and it’s in charge of persisting and retrieving events produced by your system.

Event Sourcing from the ground up, with Ruby examples, part 1 5 minutes read , , , ,

In this series I’ll go over the basic concepts in Event Sourcing. The code examples are in Ruby, but the general principles should apply in any language.

Exploring Railway-Oriented programming in Ruby 10 minutes read , , ,

An exploration of patterns for building composable data pipelines in Ruby, from the basics to the possibly YAGNI.

Written elsewhere…

Writing a Hypermedia API client in Ruby
Writing a Server Sent Events server in Go
Streaming downloads proxy service with Node.js
A network of data consumers and producers with Go, UDP, Redis and ZeroMQ
Custom event emitters in Javascript
A JSON event-based convention for WebSockets