class CreateWebhookEvents < ActiveRecord::Migration[7.1]
def change
create_table :webhook_events do |t|
t.string :event_id, null: false
t.string :source, null: false, default: "stripe"
t.string :event_type, null: false
class CreateOutboxEvents < ActiveRecord::Migration[7.1]
def change
create_table :outbox_events do |t|
t.string :event_type, null: false
t.string :aggregate_type, null: false
t.string :aggregate_id, null: false
import { Prisma, PrismaClient } from "@prisma/client";
const prisma = new PrismaClient();
type TxClient = Prisma.TransactionClient;
use std::collections::HashMap;
use std::sync::Mutex;
pub type AccountId = u64;
pub type Cents = i64;
import { EventEmitter } from "events";
export interface Job<T> {
id: string;
payload: T;
attempts: number;
class LastSeenTracker
THROTTLE = 5.minutes
PENDING_KEY = "pending:last_seen".freeze
class << self
def touch(user_id, at: Time.current)
class CreateReservations < ActiveRecord::Migration[7.1]
def up
enable_extension "btree_gist" unless extension_enabled?("btree_gist")
create_table :reservations do |t|
t.references :room, null: false, foreign_key: true
package bank
import "errors"
var ErrVersionConflict = errors.New("optimistic lock: version conflict")
var ErrInsufficientFunds = errors.New("insufficient funds")
import queue
import time
from dataclasses import dataclass, field, replace
from typing import Any, Dict, Tuple
package ratelimit
import (
"sync"
"time"
)
package watch
import (
"sync"
"time"
)
module RequestStore
def self.store
Thread.current[:request_store] ||= {}
end
def self.fetch(key)