ruby
module EventBus
  @subscribers = Hash.new { |h, k| h[k] = [] }

  class << self
    def subscribe(event_class, handler = nil, &block)
      callable = handler || block

In-Process Domain Event Bus with Subscribers in Rails

rails domain-events event-bus
by codesnips 4 tabs
go
package hub

type Hub struct {
	subscribers map[*Subscriber]struct{}
	broadcast   chan []byte
	register    chan registration

Concurrent Fan-Out Event Hub With Non-Blocking Broadcast in Go

go concurrency channels
by codesnips 3 tabs
ruby
class Article < ApplicationRecord
  include PgSearch::Model

  pg_search_scope :full_text_search,
    against: { title: 'A', body: 'B' },
    using: {

Full-Text Search Endpoint in Rails with pg_search Scope and a Search Form Object

rails postgres full-text-search
by codesnips 4 tabs
javascript
const rolePermissions = {
  guest: ['article:read'],
  author: ['article:read', 'article:create', 'article:update:own'],
  editor: ['article:publish', 'article:update:any'],
  admin: ['user:manage', 'role:assign']
};

Role-Based Access Control in Express with Permission Middleware and Protected Routes

express rbac authorization
by codesnips 3 tabs
ruby
require 'digest'
require 'json'

module CacheHelpers
  def cache_control_public(max_age = 60)
    cache_control :public, :must_revalidate, max_age: max_age

Conditional GET in Sinatra with ETag and Last-Modified for Cacheable JSON Endpoints

sinatra http-caching etag
by codesnips 3 tabs
javascript
const RETRYABLE_STATUS = new Set([408, 429, 500, 502, 503, 504]);

export function fullJitter(attempt, baseDelay = 300, maxDelay = 10_000) {
  const ceiling = Math.min(maxDelay, baseDelay * 2 ** attempt);
  return Math.random() * ceiling;
}

Fetch With Exponential Backoff and Full Jitter Retries

fetch retry exponential-backoff
by codesnips 3 tabs