Gli annunci delle librerie sono confusi. Il back end in Python di Hiki li trasforma in un catalogo che i lettori possono filtrare e cercare.
Ogni giorno Google Cloud Scheduler avvia gli scraper di Hiki. Sono basati su aiohttp, con rate limiting e backoff esponenziale, e raccolgono i dati dei prodotti da diverse librerie: nomi, prezzi, sconti, disponibilità e immagini. Il rilevamento delle modifiche segnala nuovi arrivi, cali di prezzo e cambi di disponibilità, così i lettori non perdono nessun aggiornamento.
Il nome grezzo di un prodotto in libreria è spesso confuso e incoerente. La pipeline di arricchimento di Hiki orchestra più API per trovare il manga che c’è dietro. AniList è la fonte principale per punteggi, generi, tag, sinossi e copertine. Shikimori traduce i titoli dei prodotti scritti in cirillico, e Jikan e Kitsu fanno da riserva per i casi limite. La pipeline genera varianti dei titoli, gestisce sia i caratteri cirillici sia quelli latini e riconduce anche i nomi più storpiati alla scheda canonica del manga. Le librerie non indicano i generi, quindi è questo passaggio a rendere Hiki filtrabile: i 21 generi e i 100+ tag con cui i lettori filtrano arrivano da AniList.
L’API è FastAPI con MongoDB asincrono tramite il driver Motor. MongoDB conserva il catalogo come documenti flessibili con indici composti. Il front end Next.js legge da questa API e renderizza il catalogo in tutte le lingue supportate.
Il back end gira su Google Cloud Run, accanto al front end, e Cloud Build lo rilascia a ogni push su main. Davanti c’è Cloud Armor, con restrizioni geografiche e una allowlist per i crawler.