Skip to main content

20 docs tagged with "backend"

View all tags

Design And Architecture

Coniglio is a robust event tracking and session analytics system designed for high-volume data processing. It handles millions of events daily with a focus on efficient data processing and linear scalability.

Features System

The features system controls tenant access to platform capabilities, supporting both boolean flags (on/off) and numeric limits (quotas). Features are granted at the plan level, may be overridden per-tenant, and a separate set of platform-level kill switches can disable them globally.

Gateway Credential Validation

When a tenant saves payment settings in the control panel, the platform makes a live API call to the gateway to verify the credentials work. This is not format validation; it is a real request to the gateway using the credentials the tenant just entered. If the call fails, the save is rejected.

Gateway Routing

The checkout does not let the user choose which gateway to use. The platform selects it automatically from the tenant's configured gateways, picking the first one (in priority order) whose supported currencies include the cart's currency.

Inventory Service Architecture

The InventoryService is responsible for managing the available publication listings, implementing filtering logic, and providing search capabilities across the content catalog.

Manual, Bulk, and External Orders

These order types have one thing in common: none of them go through a payment gateway at checkout time. No gateway call is made, and access is granted immediately.

Offline Analytics

Offline Analytics extends Coniglio's event-tracking pipeline to capture reading events when users have no internet connection. Events are queued locally on the host application and synchronized in batch when connectivity is restored.

Overview

Repository: gitlab.com/publicala/castoro

Overview

Repository: gitlab.com/publicala/coniglio

Overview

Repository: gitlab.com/publicala/farfalla

Payment Ledger Model

The payments table works like a bank ledger: every financial event is a new row. Financial fields are never mutated after insert. This is not an accident; it is the core invariant that makes balance calculation correct.

Refund Flow

A refund can arrive through three conceptual paths. Each path ends by inserting a new row in payments with status = 'refunded'; the original approved row is never modified. See Payment Ledger Model.

Shipping Payment

When a user buys a physical product, the checkout records two separate entries in the payments table: one for the product, one for the carrier cost. The carrier cost entry has no associated UserPlan.

Smart Zoom Articles

Smart Zoom Articles allow detailed article-level navigation inside a PDF publication. Medusa Automations detects properly-named XML files and generates each article automatically during the dispatch process.

Telescope Debugging and Monitoring

This document describes how Farfalla uses Laravel Telescope for debugging and monitoring across all environments, including cross-subdomain request tracking.

Tenant Resolver & Caching

The tenant resolver decides which tenant a request belongs to and configures the application accordingly, with a cache-first design that keeps tenant lookups off the database on every request. This doc explains the resolution path, the two-tier cache, and the invariants that keep cache and database consistent.

Yuno Checkout Flow

Yuno has two checkout flows that behave differently with respect to order creation:

X

Graph View