Jean Tessier’s Reviews > Domain-Driven Rails > Status Update

Jean Tessier
Jean Tessier is on page 157 of 170
215 - A long example using EventStoreDB and reading back events through its paged REST interface over HTTP. It supports projections so it can materialize views based on the event stream(s).
Dec 30, 2021 05:44PM
Domain-Driven Rails

flag

Jean’s Previous Updates

Jean Tessier
Jean Tessier is on page 157 of 170
272 - Glancing at Eventide. Repeats some of the patterns seen earlier with rails_event_source. Not clear what event mechanism is used in Eventide.
Dec 31, 2021 03:18PM
Domain-Driven Rails


Jean Tessier
Jean Tessier is on page 157 of 170
255 - Failure modes for inter-process notifications. Direct calls (grapeater), external queue (Kafka), and/or internal queue (rails_event_store) for transactionality + external queue for broadcasting. Bunny, a Ruby RabbitMQ Client on GitHub.
Dec 31, 2021 01:39PM
Domain-Driven Rails


Jean Tessier
Jean Tessier is on page 157 of 170
250 - The author calls ancillary work "side-effects". Functional programming drills into us to avoid side effects, so this double meaning is a little unfortunate.
Dec 31, 2021 01:28PM
Domain-Driven Rails


Jean Tessier
Jean Tessier is on page 157 of 170
240 - Automatic failover when error rates exceed threshold. Splitting up complex UIs. The author shows their inexperience, which hurts their credibility. The part on splitting up UIs has nothing to do with anything else in the book!
Dec 31, 2021 01:17PM
Domain-Driven Rails


Jean Tessier
Jean Tessier is on page 157 of 170
231 - Separating module using a gem structure (also references Shagemann). Has tips for autoreloading and putting the specs alongside the code in the module structure.
Dec 31, 2021 12:36PM
Domain-Driven Rails


Jean Tessier
Jean Tessier is on page 157 of 170
226 - Modularization using gems or Rails engines. Mentions CBRA by Shagemann. Naive opinion that you can easily migrate between engines, microservices, and serverless.
Dec 30, 2021 08:16PM
Domain-Driven Rails


Jean Tessier
Jean Tessier is on page 157 of 170
223 - CQRS creates two representations of a piece of data instead of just one. One is optimized for writes and the other is optimized for reads. Infrastructure (the event stream) keeps them (eventually) in sync. Mentions a 2010 post by Greg Young that I cannot find.
Dec 30, 2021 08:08PM
Domain-Driven Rails


Jean Tessier
Jean Tessier is on page 157 of 170
The author bailed out on trying to cover versioning of events over the lifetime of a stream.
Dec 30, 2021 05:46PM
Domain-Driven Rails


Jean Tessier
Jean Tessier is on page 157 of 170
They use RubyEventStore::Client#append with an explicit expected_version to do optimistic locking. This way, they can change state from "almost published" events but still fail to publish them in case of a collision. This is why they need to rehydrate objects each and every time.
Dec 30, 2021 04:34PM
Domain-Driven Rails


Jean Tessier
Jean Tessier is on page 157 of 170
I like that they picked an example app with lots of real life complexity but can be simplified enough for the examples without losing the flavor. Author has worked a lot with ticketing apps.
Dec 30, 2021 04:21PM
Domain-Driven Rails


No comments have been added yet.