Skip to content

Instantly share code, notes, and snippets.

View mostlyobvious's full-sized avatar

Paweł Pacana mostlyobvious

View GitHub Profile

I'm no longer RailsEventStore maintainer

TL;DR RES is a strategic OSS product at arkency and I'm no longer with them.

RailsEventStore started around 2014 as an in-house event store developed to solve particular problems at one of the arkency clients. What initially only helped reliably synchronizing financial data with Salesforce, later became a central backbone for integrating company departments, powered cross-cutting workflows and radically simplified operations of the customer support. And we felt it was so good, it would have been a shame not to share it with the world. So, with the client's permission, it was extracted. Just like Rails once was.

RES was designed to work with legacy applications first in mind. Not the idealistic greenfield or hobby projects. It was meant to be introduced to mature projects with minimal changes. To start small, in the middle. On existing infrastructure. At the same time it was a useful educational tool when exposi

commit 01e41f9dbada0981ad6cac44c000ae56cc0508a8
Author: Paweł Pacana <pawel.pacana@gmail.com>
Date: Wed Jul 23 12:49:56 2025 +0200
Respect Shrine design decisions
In https://shrinerb.com/docs/design we read that:
> Each Shrine subclass has its own copy of the core classes,
> storages and options, which makes it possible to customize
source "https://rubygems.org"
gem "benchmark-ips"
gem "rails_event_store", path: "."
gem "ruby_event_store", path: "."
gem "ruby_event_store-active_record", path: "."
gem "rails"
gem "pg"
gem "childprocess"
require "bundler/inline"
gemfile do
source "https://rubygems.org"
ruby "2.7.8" # keyword-hash deprecation warnings
gem "concurrent-ruby", "1.3.3"
end
\timing
\set records 1_000_000
\set repeat 10
CREATE OR REPLACE FUNCTION mk_name (i integer, d integer)
RETURNS varchar
AS $$
DECLARE
separator varchar := '$';
id integer := i % d;
module KakaDudu exposing (..)
import Browser
import Dict
import Html exposing (..)
import Task
import Time
import TimeZone
require "bundler/inline"
gemfile do
source "https://rubygems.org"
gem "sequel"
gem "pg"
gem "concurrent-ruby"
end
require "securerandom"
# frozen_string_literal: true
require "bundler/inline"
gemfile do
source "https://rubygems.org"
gem "sequel"
gem "pg"
gem "concurrent-ruby"
gem "benchmark-ips"
Coverband: detected SimpleCov in test Env, allowing it to start Coverage
Coverband: to ensure no error logs or missing Coverage call `SimpleCov.start` prior to requiring Coverband
E, [2024-01-12T13:17:58.428001 #82678] ERROR -- : coverage failed to store
E, [2024-01-12T13:17:58.428035 #82678] ERROR -- : Coverband Error: #<RuntimeError: coverage measurement is not enabled> coverage measurement is not enabled
E, [2024-01-12T13:17:58.830948 #82678] ERROR -- : coverage failed to store
E, [2024-01-12T13:17:58.830980 #82678] ERROR -- : Coverband Error: #<RuntimeError: coverage measurement is not enabled> coverage measurement is not enabled
Module#name from: REXML::Functions raised an error: #<NoMethodError: undefined method `[]' for nil:NilClass>. Fix your lib to follow normal ruby semantics!
{Module,Class}#name should return resolvable constant name as String or nil
Class#name from: Faker::Travel::Airport raised an error: #<ArgumentError: missing keywords: :size, :region>. Fix your lib to follow normal ruby semant
Coverband: detected SimpleCov in test Env, allowing it to start Coverage
Coverband: to ensure no error logs or missing Coverage call `SimpleCov.start` prior to requiring Coverband
E, [2024-01-12T13:15:02.944498 #82333] ERROR -- : coverage failed to store
E, [2024-01-12T13:15:02.944537 #82333] ERROR -- : Coverband Error: #<RuntimeError: coverage measurement is not enabled> coverage measurement is not enabled
E, [2024-01-12T13:15:03.339597 #82333] ERROR -- : coverage failed to store
E, [2024-01-12T13:15:03.339629 #82333] ERROR -- : Coverband Error: #<RuntimeError: coverage measurement is not enabled> coverage measurement is not enabled
Module#name from: REXML::Functions raised an error: #<NoMethodError: undefined method `[]' for nil:NilClass>. Fix your lib to follow normal ruby semantics!
{Module,Class}#name should return resolvable constant name as String or nil
Class#name from: Faker::Travel::Airport raised an error: #<ArgumentError: missing keywords: :size, :region>. Fix your lib to follow normal ruby semant