Blog

Quello che imparo, lo scrivo. 55 articoli.

Automatizzare9 min

RTK e tokensave: ridurre i costi dei token nell'AI coding

RTK comprime l'output verboso dei comandi CLI prima che entri nel contesto. tokensave sostituisce gli agenti Explore con un knowledge graph locale. Due tool Rust ortogonali.

Verificare13 min

ListObjects in Produzione: Caching, Pre-materializzazione e BatchCheck

Perché ListObjects diventa il collo di bottiglia in OpenFGA, e come risolverlo: caching con Redis, read model pre-materializzato, BatchCheck e strategie di invalidazione.

Verificare22 min

Burn-rate alerts: quando l'error budget brucia più veloce del previsto

Multi-window multi-burn-rate alerting da SRE Workbook cap. 5: alertare sul ritmo di consumo dell'error budget, non sulla soglia statica.

Verificare18 min

Gerarchie Profonde, Query Inverse e il Problema WHERE

Come gestire gerarchie a N livelli in OpenFGA, ottimizzare ListObjects con fast/slow path, e implementare Dynamic Data Masking come pattern complementare.

Verificare21 min

Prometheus predict_linear: alert predittivi di saturation in pratica

Come usare predict_linear in Prometheus per alert di saturation predittivi. USE vs Golden Signals, esempi reali (JVM, TLS, Kafka) e demo Docker Compose.

Verificare7 min

Dopo che l'Alert Scatta: Severity, Routing e il Contratto con Chi lo Riceve

Severity come contratto di routing, inhibit rules e runbook_url nel payload: i tre mattoni minimi che rendono un alert Alertmanager azionabile.

Verificare13 min

Multitenancy con OpenFGA: Isolamento Senza Moltiplicare la Complessità

Due strategie per multitenancy con OpenFGA: store-per-tenant e type-per-tenant. Come ottenere isolamento strutturale senza WHERE tenant_id ovunque.

Verificare16 min

OpenFGA + Keycloak: Identità e Permessi si Parlano

Come integrare OpenFGA con Keycloak: sincronizzazione utenti, JWT come ponte, contextual tuples e strategie per tenere identità e autorizzazione allineate.

Progettare11 min

Micro-frontend in Vue 3 con Module Federation: Shell, Contratto e Deploy Indipendente

Module Federation in Vue 3 con Vite: contratto shell/remote, dipendenze singleton e deploy indipendente per team.

Progettare16 min

Vedere LINQ in Azione: Tracing con OpenTelemetry e Grafana Tempo

Rendiamo visibile l'esecuzione di LINQ con OpenTelemetry e Grafana Tempo. Extension methods per tracciare pipeline, multiple enumeration e nesting esplosivo su una dashboard.

Verificare14 min

Zanzibar per Tutti: Concetti e Modello di Autorizzazione

Da RBAC a Zanzibar: come funziona il modello a tuple di OpenFGA, il DSL per le relazioni, e le tre domande fondamentali dell'autorizzazione.

Progettare14 min

Cosa Genera il Compilatore Quando Scrivi una Where() — State Machine, Iteratori e IL

Dietro ogni .Where() c'è una state machine generata dal compilatore. Esploriamo extension methods, lambda, yield return e le specializzazioni di Enumerable.Where in .NET 8.

Progettare11 min

Keycloak Federation: Integrare Utenti da LDAP, Okta, Google e Altri Identity Provider

Come Keycloak integra identità esterne con due meccanismi distinti: User Federation per directory come LDAP/AD, e Identity Brokering per provider come Okta, Google e altri Keycloak.

Automatizzare14 min

Playwright: Page Object Model per Test Manutenibili

Come organizzare i test E2E con il Page Object Model: classi riusabili, fixture Playwright, composizione con mock e refactoring guidato

Automatizzare13 min

Playwright: Mock Fixture, HAR Replay e Composizione per Test Scalabili

Come scalare il network mocking con fixture riusabili, HAR replay e composizione di scenari complessi

Automatizzare12 min

Playwright: Network Mocking e API Interception per Test Affidabili

Come usare page.route() per mockare API, simulare errori e testare edge case senza dipendere dai servizi reali

Automatizzare13 min

Playwright: Visual Regression Testing per Catturare Bug Invisibili

Come usare toHaveScreenshot() per catturare bug visivi che i test funzionali non vedono: masking, stati mockati, cross-browser e CI

Automatizzare15 min

Playwright: Diagnosticare e Risolvere Test Flaky

Come identificare le cause dei test flaky e risolverle: trace viewer, retry strategico, pattern anti-flaky e checklist diagnostica

Automatizzare13 min

Playwright: Authentication Testing con storageState e Keycloak

Come gestire l'autenticazione nei test E2E: storageState per evitare login ripetuti, ruoli multipli, session management e composizione con mock

Progettare14 min

Schema Registry con Apache Kafka: da JSON selvaggio ad Avro con Apicurio

Migrazione da JSON senza schema ad Avro con Apicurio Registry: infrastruttura, producer Node.js, consumer Python, schema evolution

Progettare9 min

Akka è morto, lunga vita a Pekko

Guida pratica alla migrazione da Akka a Apache Pekko in produzione: checklist completa, gotcha reali e lezioni apprese dal campo

Progettare12 min

Da blocking poll a stream reattivi con Pekko Connectors Kafka

Refactoring da attori bloccanti a Source.queue e consumer threads dedicati: pattern pratici con Pekko Streams e Kafka per sistemi di telemetria

Progettare8 min

Kafka crash recovery: tre strategie per tre tipi di stato

Tre strategie di recovery per consumer Kafka con stato diverso: replay completo per idempotenti, checkpoint per additivi, nessun recovery per stateless

Progettare14 min

Quanto Costa Davvero LINQ? Benchmark su .NET 8 con i Numeri

Benchmark reali con BenchmarkDotNet su .NET 8: List vs HashSet, scan vs GroupBy, allocazioni LINQ vs foreach, e il costo nascosto di AsParallel su collezioni piccole.

Progettare11 min

3 pattern (+1 anti-pattern) per eliminare la duplicazione in Vue 3

Tre pattern Vue 3 per eliminare la duplicazione nelle SPA enterprise, più un anti-pattern su quando fermarsi

Progettare13 min

Login con Keycloak: Authorization Code + PKCE in MockMart

Setup pratico di Authorization Code Flow con PKCE: configurazione Keycloak, integrazione frontend React e validazione backend Express.

Progettare11 min

Da EventBus a Pinia: migrazione progressiva dello stato in Vue 3

Pattern concreti per sostituire EventBus con Pinia in un progetto Vue 3: cache con deduplication, persistenza selettiva, approccio ibrido

Progettare13 min

OpenLayers e Vue 3: integrazione con composables e TypeScript

Pattern concreti per integrare OpenLayers in Vue 3 con shallowRef, composables tipizzati e lifecycle management

Verificare18 min

OpenTelemetry in Produzione: Routing dei Dati per Compliance e Costi

Separare log audit da log tecnici con il routing connector dell'OTel Collector. Demo, compliance GDPR/SOC 2 e retention differenziata.

Automatizzare15 min

Controller Kubernetes: Come Funziona il Cuore di K8s

Guida al funzionamento dei controller Kubernetes, dal reconciliation loop alla costruzione di un controller custom con controller-runtime

Progettare7 min

Keycloak: Cos'è e Perché Usarlo per la Tua Web App

Cos'è Keycloak, come funziona il login delegato e perché un Identity Provider centralizzato semplifica la vita.

Verificare8 min

Da console.log a Grafana: logging strutturato e centralizzato con Node.js

Come passare da console.log a un sistema di logging strutturato e centralizzato con Pino, OpenTelemetry, Loki e Grafana su Node.js in tre step incrementali

Automatizzare13 min

Dal test E2E al debug del backend: Playwright + OpenTelemetry

Come correlare test E2E Playwright con trace OpenTelemetry per identificare il microservizio colpevole quando un test fallisce

Progettare11 min

Autorizzazione Granulare con OPA e Keycloak: Separare Autenticazione e Autorizzazione

Come integrare Open Policy Agent con Keycloak in un'app Express per separare autenticazione e autorizzazione. Tre pattern concreti: RBAC, deny list e ownership.

Progettare13 min

Keycloak in Pratica: 6 Problemi Reali nell'Integrazione di un E-Commerce

6 problemi concreti nell'integrazione Keycloak con microservizi Node.js: issuer mismatch, audience mancante, service account fragili e race condition M2M.

Progettare9 min

Keycloak M2M: Autenticare Servizi Senza Utente

Come autenticare chiamate tra microservizi con Keycloak Client Credentials. Setup, codice e errori comuni.

Verificare17 min

OpenTelemetry in Produzione: Tail Sampling e Retention

Come ridurre il volume dati del 90% senza perdere visibilità sugli errori. Guida pratica con config template e scenario demo.

Verificare13 min

PII Filtering in OpenTelemetry: Proteggere i Dati Sensibili di Keycloak

Come instrumentare Keycloak e servizi third-party con dati sensibili, riducendo il rischio PII tramite filtering nell'OTel Collector. Tecniche GDPR-compliant.

Verificare18 min

Tutorial: Distributed Tracing con OpenTelemetry e LGTM Stack

Guida pratica al distributed tracing con OpenTelemetry e LGTM stack. Tre scenari di debug: silent failure, latency spike, fan-out.

Automatizzare17 min

Playwright: Testing E2E Moderno e Affidabile

Guida completa a Playwright per test end-to-end affidabili e veloci. Architettura, pattern avanzati e integrazione CI/CD

Automatizzare5 min

CAPI Parte 5: Ubuntu su Proxmox - Image Builder e Deploy

Guida completa al deployment di cluster Kubernetes su Proxmox utilizzando Ubuntu, Image Builder e Cluster API - Dalla creazione dell'immagine al cluster funzionante

Automatizzare16 min

Da port-forward a Ingress: Come configurare un ambiente Kubernetes locale professionale con NGINX

Guida completa alla configurazione di un Ingress Controller NGINX su un cluster Kubernetes locale (kind) per esporre servizi in modo stabile e professionale.

Automatizzare7 min

CAPI Parte 1: Dal Chaos all'Automazione

Guida completa al deployment e gestione di cluster Kubernetes utilizzando Cluster API (CAPI) per l'automazione dell'infrastruttura

Automatizzare11 min

CAPI Parte 2: Anatomia di Cluster API - Componenti e Meccanismi

Guida completa al deployment e gestione di cluster Kubernetes utilizzando Cluster API (CAPI) per l'automazione dell'infrastruttura

Automatizzare11 min

CAPI Parte 3: Talos Linux - Il Sistema Operativo per Kubernetes

Guida completa al deployment e gestione di cluster Kubernetes utilizzando Cluster API (CAPI) per l'automazione dell'infrastruttura

Automatizzare9 min

CAPI Parte 4: Setup Pratico - Day 1 Operations

Guida completa al deployment iniziale di cluster Kubernetes utilizzando Cluster API (CAPI) - Da Zero a Cluster Funzionante

Progettare12 min

Kafka in Pratica 1: Architettura di un Flusso di Eventi

Le fondamenta di Apache Kafka, dalla struttura delle partizioni al ruolo della chiave, con esempi pratici in Node.js e Python.

Automatizzare6 min

DevContainers: Ambiente di Sviluppo Portatile e Riproducibile

Esploriamo i DevContainers, come funzionano e perché sono essenziali per moderni flussi di lavoro di sviluppo, specialmente in ambienti distribuiti

Verificare24 min

Observability nei Sistemi Distribuiti: Dal Monitoraggio alla Comprensione

Perché metriche, log e trace non bastano più. Un cambio di paradigma per comprendere e dominare la complessità dei sistemi moderni.

Verificare11 min

Lo Stack LGTM e OpenTelemetry: Osservabilità Completa per Sistemi Distribuiti

Esplora lo stack LGTM (Loki, Grafana, Tempo, Mimir) e scopri come si integra con OpenTelemetry per un'osservabilità end-to-end di log, metriche e tracce.

Verificare12 min

OpenTelemetry: Anatomia dell'Observability nei Sistemi Distribuiti

Struttura, funzionamento e best practice di OpenTelemetry per l’implementazione dell’observability end-to-end in ambienti complessi.

Automatizzare12 min

Introduzione all'analisi delle performance: dalla teoria alla pratica

Fondamenta teoriche e pratiche del performance testing: dalle metriche RED ai percentili, una guida completa per iniziare

Automatizzare12 min

Deploy Self-Hosted di n8n in Homelab

Automazione personale con n8n deploy, configurazione e integrazione in un ambiente casalingo

Automatizzare10 min

Docker Internals: Namespaces e CGroups Spiegati

Guida completa ai meccanismi interni di Docker e all'isolamento dei container

Automatizzare11 min

Playwright in CI/CD: Sharding, Mobile Testing e Automazione Agent-Driven

Come integrare Playwright nella pipeline CI/CD con sharding, emulazione mobile e API testing per suite E2E veloci, affidabili e pronte per l'automazione agent-driven