← Torna ai progetti
Marketplace e FinTech Case study

Autoplius.lt — Il più grande portale di annunci automobilistici nei Paesi baltici

Sviluppo ed evoluzione del portale di annunci automobilistici ad alto carico Autoplius.lt (Baltic Classifieds Group): ricerca, catalogo annunci, strumenti per venditori privati e concessionari, analytics di mercato. Stack: Symfony, ElasticSearch, RabbitMQ, Redis, Twig.

Tecnologie 6
PHP
JavaScript
Symfony
PostgreSQL
Elasticsearch
Redis
Autoplius.lt — Il più grande portale di annunci automobilistici nei Paesi baltici
Progetto in evidenza ↗

Informazioni sul progetto

Autoplius.lt è il portale di annunci automobilistici più visitato nei Paesi baltici, con la più ampia selezione di auto usate della regione. Dal 2003 il portale aiuta gli acquirenti a trovare veicoli adatti e i venditori privati e i concessionari ad attrarre potenziali acquirenti.

Il portale ospita oltre 210.000 annunci — da auto passeggeri, trasporto pesante e biciclette a ricambi, pneumatici e cerchi, di cui più di 44.000 annunci di auto passeggeri nuove e usate. L'audience in Lituania è di quasi 600.000 utenti al mese, con oltre 11 milioni di visite al mese. In media, un utente trascorre circa 1 ora e 40 minuti al mese su Autoplius.lt — ad agosto 2026 il portale occupava il primo posto tra i siti che partecipano allo studio Gemius in Lituania.

Ho lavorato al progetto come sviluppatore Symfony: responsabile del backend della piattaforma, dell'infrastruttura di ricerca, delle integrazioni con i servizi di storico veicoli e analytics, nonché degli strumenti per concessionari e venditori privati. Il progetto fa parte del Baltic Classifieds Group, gestito e sviluppato da UAB «Diginet LTU».

Autoplius.lt — Il più grande portale di annunci automobilistici nei Paesi baltici

Autoplius.lt è il portale di annunci automobilistici più visitato nei Paesi baltici, con la più ampia selezione di auto usate della regione. Dal 2003 aiutiamo gli acquirenti a trovare veicoli adatti e i venditori privati e i concessionari ad attrarre potenziali acquirenti.

Il portale ospita oltre 210.000 annunci — da auto passeggeri, trasporto pesante e biciclette a ricambi, pneumatici e cerchi. Di questi, più di 44.000 sono annunci di auto passeggeri nuove e usate.

L'audience di Autoplius.lt in Lituania è di quasi 600.000 utenti al mese, con oltre 11 milioni di visite al mese. In media, un utente trascorre circa 1 ora e 40 minuti al mese su Autoplius.lt — ad agosto 2026 il portale occupava il primo posto tra i siti che partecipano allo studio Gemius in Lituania.

Il mio ruolo nel progetto

Sviluppatore Symfony: responsabile del backend della piattaforma, dell'infrastruttura di ricerca, delle integrazioni e degli strumenti per concessionari e venditori privati.

Stack tecnologico

  • Backend: Symfony (PHP)
  • Frontend: Twig
  • Ricerca: ElasticSearch
  • Code: RabbitMQ
  • Cache e sessioni: Redis
  • Infrastruttura: worker in background per l'elaborazione asincrona degli annunci, l'indicizzazione e le notifiche

Attività chiave

  • Evoluzione dell'infrastruttura di ricerca su ElasticSearch
  • Elaborazione asincrona di annunci ed eventi tramite RabbitMQ
  • Caching e ottimizzazione dell'output tramite Redis
  • Integrazione con il servizio di storico veicoli Autoistorija.lt
  • Strumenti per concessionari (Autopulsas, analytics di mercato)
  • Funzionalità per venditori privati (valutazione auto, «Mokėk, kai parduosi»)
  • Ottimizzazione delle performance sotto alto carico
  • Monitoring e alerting dei processi chiave

Risultato

La piattaforma serve in modo affidabile centinaia di migliaia di utenti al mese e milioni di visite, offrendo ricerca rapida su centinaia di migliaia di annunci, analytics per i concessionari e strumenti pratici per i venditori privati.

Ciò che ho consegnato

01

Gli utenti necessitano di una ricerca rapida e pertinente su oltre 210.000 annunci con num...

La sfida

Gli utenti necessitano di una ricerca rapida e pertinente su oltre 210.000 annunci con numerosi filtri (marca, modello, anno, chilometraggio, prezzo, regione, tipo di carrozzeria, ecc.). Le query SQL pesanti non supportavano il carico e non offrivano la pertinenza richiesta.

Soluzione

  • Progettazione e ottimizzazione degli indici ElasticSearch per le entità chiave (annunci, auto, concessionari, ricambi).
  • Implementazione della sincronizzazione dei dati tra DB ed ElasticSearch tramite eventi RabbitMQ.
  • Configurazione della ricerca a faccette, aggregazioni e ordinamenti per i filtri.
  • Ottimizzazione di mapping e reindicizzazione per grandi volumi.

Risultati

  • Ricerca rapida e pertinente su centinaia di migliaia di annunci.
  • Filtri e faccette flessibili per gli utenti.
  • Riduzione del carico sul database principale.

02

Pubblicazione, modifica, moderazione e indicizzazione degli annunci sono operazioni pesant...

La sfida

Pubblicazione, modifica, moderazione e indicizzazione degli annunci sono operazioni pesanti che non possono essere eseguite in modo sincrono nel ciclo HTTP. Sotto carico crescente, ciò causava ritardi e timeout.

Soluzione

  • Progettazione di code di eventi per pubblicazione, aggiornamento, cancellazione e moderazione degli annunci.
  • Implementazione di worker con Symfony Messenger + RabbitMQ.
  • Aggiunta di policy di retry, dead-letter queue e monitoring.
  • Garanzia dell'idempotenza degli handler.

Risultati

  • Risposta rapida dell'interfaccia indipendentemente dalle operazioni in background.
  • Resilienza a guasti e picchi di carico.
  • Elaborazione scalabile degli annunci.

03

Le pagine popolari (homepage, categorie, top annunci, pagine concessionari) generavano un...

La sfida

Le pagine popolari (homepage, categorie, top annunci, pagine concessionari) generavano un enorme carico sul DB a ogni richiesta. Erano necessari una consegna più rapida e un carico ridotto.

Soluzione

  • Introduzione del caching multi-livello dei dati caldi e degli aggregati in Redis.
  • Configurazione dell'invalidazione della cache tramite eventi (pubblicazione/modifica/cancellazione annuncio).
  • Utilizzo di Redis per sessioni e lock distribuiti.
  • Aggiunta di monitoring hit/miss e tempi di risposta.

Risultati

  • Riduzione significativa del tempo di risposta delle pagine chiave.
  • Carico ridotto sul database.
  • Funzionamento stabile sotto picco di carico.

04

Gli acquirenti necessitano di accedere ai report sullo storico del veicolo direttamente su...

La sfida

Gli acquirenti necessitano di accedere ai report sullo storico del veicolo direttamente sulla pagina dell'annuncio. Era necessaria un'integrazione affidabile con il servizio esterno Autoistorija.lt senza bloccare le richieste degli utenti.

Soluzione

  • Implementazione di un client di integrazione con Autoistorija.lt con caching delle risposte.
  • Spostamento delle richieste pesanti in task asincroni tramite RabbitMQ.
  • Aggiunta di gestione errori, timeout e scenari di fallback.
  • Garanzia del rendering dei report nei template Twig sulla pagina dell'annuncio.

Risultati

  • Gli utenti ricevono lo storico del veicolo direttamente sulla pagina dell'annuncio.
  • Nessun blocco in caso di indisponibilità del servizio esterno.
  • Maggiore fiducia degli acquirenti negli annunci.

05

I concessionari necessitano di strumenti per la valutazione del mercato, l'analisi della p...

La sfida

I concessionari necessitano di strumenti per la valutazione del mercato, l'analisi della performance degli annunci e del contesto competitivo, nonché per l'automazione della gestione degli annunci. Le capacità esistenti erano insufficienti per la pianificazione dell'assortimento.

Soluzione

  • Sviluppo del backend per Autopulsas: aggregazione dei dati di mercato, calcolo delle metriche per segmento.
  • Implementazione di analytics sugli annunci del concessionario e dei concorrenti.
  • Aggiunta di strumenti di gestione massiva degli annunci (operazioni bulk).
  • Creazione di report ed export per i concessionari.

Risultati

  • I concessionari hanno ottenuto strumenti per la pianificazione dell'assortimento e la valutazione delle performance.
  • Automazione del lavoro quotidiano sugli annunci.
  • Maggiore engagement dei concessionari sulla piattaforma.

06

I venditori privati necessitano di strumenti semplici: valutazione dell'auto e possibilità...

La sfida

I venditori privati necessitano di strumenti semplici: valutazione dell'auto e possibilità di pagare l'annuncio dopo la vendita («Mokėk, kai parduosi»). Era necessaria una corretta gestione dei pagamenti e delle condizioni del servizio.

Soluzione

  • Implementazione di un servizio di valutazione dell'auto basato sui dati di mercato.
  • Sviluppo della meccanica «Mokėk, kai parduosi»: pagamento differito, monitoraggio della vendita, addebito secondo le condizioni.
  • Integrazione del gateway di pagamento e gestione degli stati tramite RabbitMQ.
  • Aggiunta di notifiche e dashboard venditore.

Risultati

  • Semplificazione della pubblicazione degli annunci per i venditori privati.
  • Il modello di pagamento flessibile ha aumentato la conversione degli annunci.
  • Condizioni e stati trasparenti per il venditore.

07

Il portale serve quasi 600.000 utenti e oltre 11 milioni di visite al mese. Era necessario...

La sfida

Il portale serve quasi 600.000 utenti e oltre 11 milioni di visite al mese. Era necessario un funzionamento stabile sotto picco di carico senza degrado della risposta.

Soluzione

  • Profilazione dei colli di bottiglia e ottimizzazione di query SQL e indici.
  • Introduzione di caching ed elaborazione asincrona delle operazioni pesanti.
  • Ottimizzazione dei template Twig e della consegna degli asset statici.
  • Configurazione dello scaling orizzontale dei worker.

Risultati

  • Funzionamento stabile sotto picco di carico.
  • Riduzione del tempo di risposta delle pagine chiave.
  • Prontezza per ulteriore crescita del traffico.

08

Il portale opera 24/7 e i guasti in indicizzazione, code o integrazioni sono critici per i...

La sfida

Il portale opera 24/7 e i guasti in indicizzazione, code o integrazioni sono critici per il business. Era necessario un sistema di monitoring e alert.

Soluzione

  • Configurazione della raccolta di metriche su ElasticSearch, RabbitMQ, Redis ed eventi di business chiave.
  • Implementazione di alert su anomalie (crescita della DLQ, ritardi di indicizzazione, errori dei worker).
  • Aggiunta di dashboard per il team.
  • Integrazione del logging delle operazioni critiche.

Risultati

  • Rilevamento e reazione rapidi agli incidenti.
  • Riduzione dei tempi di inattività.
  • Trasparenza dello stato della piattaforma per il team.

09

Sul portale vengono pubblicate centinaia di migliaia di annunci, tra cui duplicati, pubbli...

La sfida

Sul portale vengono pubblicate centinaia di migliaia di annunci, tra cui duplicati, pubblicazioni fraudolente e scorrette. Era necessaria una moderazione automatizzata senza ritardi per i venditori legittimi.

Soluzione

  • Implementazione di una pipeline di moderazione: regole automatizzate + coda di verifica manuale.
  • Aggiunta di controlli su duplicati e pattern sospetti.
  • Spostamento della moderazione in task asincroni tramite RabbitMQ.
  • Aggiunta di strumenti per i moderatori e logging delle decisioni.

Risultati

  • Riduzione del numero di annunci fraudolenti e duplicati.
  • Pubblicazione rapida per i venditori legittimi.
  • Strumenti pratici per il team di moderazione.

10

Tutte le azioni sugli annunci (creazione, modifica, moderazione, cancellazione) dovevano e...

La sfida

Tutte le azioni sugli annunci (creazione, modifica, moderazione, cancellazione) dovevano essere tracciabili per la risoluzione delle controversie e l'analytics. Era necessario un sistema di audit che non rallentasse i processi principali.

Soluzione

  • Progettazione di uno schema di audit log collegato ad annuncio, utente e azione.
  • Implementazione della scrittura asincrona dell'audit tramite RabbitMQ.
  • Aggiunta di strumenti di ricerca ed export degli audit log (ElasticSearch).
  • Garanzia dell'immutabilità dei record.

Risultati

  • Audit completo delle azioni sugli annunci.
  • Risoluzione rapida delle controversie.
  • Base per l'analytics del comportamento dei venditori.

11

La crescita dell'audience e del numero di annunci richiedeva uno scaling dell'infrastruttu...

La sfida

La crescita dell'audience e del numero di annunci richiedeva uno scaling dell'infrastruttura senza riscrivere i componenti chiave. Era necessaria una soluzione resiliente a picchi di carico e crescita dei dati.

Soluzione

  • Spostamento delle operazioni pesanti in worker separati, scalabili orizzontalmente.
  • Configurazione dello sharding degli indici ElasticSearch.
  • Ottimizzazione dell'utilizzo di Redis e RabbitMQ.
  • Introduzione di load testing e profiling.

Risultati

  • Infrastruttura pronta per la crescita di traffico e dati.
  • Resilienza ai picchi di carico.
  • Performance prevedibili degli scenari chiave.

Tecnologie e argomenti

Tag del progetto

#Symfony #PHP #Twig #ElasticSearch #RabbitMQ #Redis #Classifieds #Marketplace #High Load #Auto #Autoplius #Baltic Classifieds Group #REST API #Symfony Messenger #Elaborazione asincrona #Ricerca #Moderazione #Antifrode #Audit Logging
04
Avvia un progetto

Hai bisogno di un approccio tecnico simile?

Parliamo del tuo progetto, dell'architettura e del miglior stack tecnologico per esso.

Parliamone ↗