← Retour aux projets
Marketplaces et FinTech Étude de cas

Autoplius.lt — Le plus grand portail de petites annonces automobiles des pays baltes

Développement et évolution du portail de petites annonces automobiles à forte charge Autoplius.lt (Baltic Classifieds Group) : recherche, catalogue d'annonces, outils pour vendeurs particuliers et concessionnaires, analytique de marché. Stack : Symfony, ElasticSearch, RabbitMQ, Redis, Twig.

Technologies 6
PHP
JavaScript
Symfony
PostgreSQL
Elasticsearch
Redis
Autoplius.lt — Le plus grand portail de petites annonces automobiles des pays baltes
Projet en vedette ↗

À propos du projet

Autoplius.lt est le portail de petites annonces automobiles le plus visité des pays baltes, avec le plus grand choix de voitures d'occasion de la région. Depuis 2003, le portail aide les acheteurs à trouver des véhicules adaptés et les vendeurs particuliers ainsi que les concessionnaires à attirer des acheteurs potentiels.

Le portail héberge plus de 210 000 annonces — des voitures particulières, du transport lourd et des vélos aux pièces détachées, pneus et jantes, dont plus de 44 000 annonces de voitures particulières neuves et d'occasion. L'audience en Lituanie est de près de 600 000 utilisateurs par mois, et le nombre de visites dépasse 11 millions par mois. En moyenne, un utilisateur passe environ 1 heure 40 minutes par mois sur Autoplius.lt — en août 2026, le portail occupait la première place parmi les sites participant à l'étude Gemius en Lituanie.

J'ai travaillé sur le projet en tant que développeur Symfony : responsable du backend de la plateforme, de l'infrastructure de recherche, des intégrations avec les services d'historique des véhicules et d'analytique, ainsi que des outils pour les concessionnaires et les vendeurs particuliers. Le projet fait partie du Baltic Classifieds Group, géré et développé par UAB « Diginet LTU ».

Autoplius.lt — Le plus grand portail de petites annonces automobiles des pays baltes

Autoplius.lt est le portail de petites annonces automobiles le plus visité des pays baltes, avec le plus grand choix de voitures d'occasion de la région. Depuis 2003, nous aidons les acheteurs à trouver des véhicules adaptés et les vendeurs particuliers ainsi que les concessionnaires à attirer des acheteurs potentiels.

Le portail héberge plus de 210 000 annonces — des voitures particulières, du transport lourd et des vélos aux pièces détachées, pneus et jantes. Parmi elles, plus de 44 000 sont des annonces de voitures particulières neuves et d'occasion.

L'audience d'Autoplius.lt en Lituanie est de près de 600 000 utilisateurs par mois, et le nombre de visites dépasse 11 millions par mois. En moyenne, un utilisateur passe environ 1 heure 40 minutes par mois sur Autoplius.lt — en août 2026, le portail occupait la première place parmi les sites participant à l'étude Gemius en Lituanie.

Mon rôle dans le projet

Développeur Symfony : responsable du backend de la plateforme, de l'infrastructure de recherche, des intégrations et des outils pour les concessionnaires et les vendeurs particuliers.

Stack technologique

  • Backend : Symfony (PHP)
  • Frontend : Twig
  • Recherche : ElasticSearch
  • Files d'attente : RabbitMQ
  • Cache et sessions : Redis
  • Infrastructure : workers en arrière-plan pour le traitement asynchrone des annonces, l'indexation et les notifications

Tâches clés

  • Évolution de l'infrastructure de recherche sur ElasticSearch
  • Traitement asynchrone des annonces et événements via RabbitMQ
  • Caching et optimisation de la restitution via Redis
  • Intégration avec le service d'historique des véhicules Autoistorija.lt
  • Outils pour les concessionnaires (Autopulsas, analytique de marché)
  • Fonctionnalités pour les vendeurs particuliers (évaluation du véhicule, « Mokėk, kai parduosi »)
  • Optimisation des performances sous forte charge
  • Monitoring et alerting des processus clés

Résultat

La plateforme sert de manière fiable des centaines de milliers d'utilisateurs par mois et des millions de visites, offrant une recherche rapide sur des centaines de milliers d'annonces, de l'analytique pour les concessionnaires et des outils pratiques pour les vendeurs particuliers.

Ce que j'ai livré

01

Les utilisateurs ont besoin d'une recherche rapide et pertinente sur plus de 210 000 annon...

Le défi

Les utilisateurs ont besoin d'une recherche rapide et pertinente sur plus de 210 000 annonces avec de nombreux filtres (marque, modèle, année, kilométrage, prix, région, type de carrosserie, etc.). Les requêtes SQL lourdes ne supportaient pas la charge et n'offraient pas la pertinence requise.

Solution

  • Conception et optimisation des index ElasticSearch pour les entités clés (annonces, voitures, concessionnaires, pièces détachées).
  • Implémentation de la synchronisation des données entre la BD et ElasticSearch via des événements RabbitMQ.
  • Configuration de la recherche à facettes, des agrégations et des tris pour les filtres.
  • Optimisation des mappings et de la réindexation pour de gros volumes.

Résultats

  • Recherche rapide et pertinente sur des centaines de milliers d'annonces.
  • Filtres et facettes flexibles pour les utilisateurs.
  • Réduction de la charge sur la base de données principale.

02

La publication, la modification, la modération et l'indexation des annonces sont des opéra...

Le défi

La publication, la modification, la modération et l'indexation des annonces sont des opérations lourdes qui ne peuvent pas être exécutées de manière synchrone dans le cycle HTTP. Sous une charge croissante, cela provoquait des retards et des timeouts.

Solution

  • Conception de files d'événements pour la publication, la mise à jour, la suppression et la modération des annonces.
  • Implémentation de workers avec Symfony Messenger + RabbitMQ.
  • Ajout de politiques de retry, d'une dead-letter queue et du monitoring.
  • Assurance de l'idempotence des handlers.

Résultats

  • Réponse rapide de l'interface indépendamment des opérations en arrière-plan.
  • Résilience aux pannes et aux pics de charge.
  • Traitement scalable des annonces.

03

Les pages populaires (accueil, catégories, top annonces, pages concessionnaires) généraien...

Le défi

Les pages populaires (accueil, catégories, top annonces, pages concessionnaires) généraient une charge énorme sur la BD à chaque requête. Une livraison plus rapide et une charge réduite étaient nécessaires.

Solution

  • Introduction d'un caching multi-niveaux des données chaudes et des agrégats dans Redis.
  • Configuration de l'invalidation du cache via des événements (publication/modification/suppression d'annonce).
  • Utilisation de Redis pour les sessions et les verrous distribués.
  • Ajout du monitoring hit/miss et des temps de réponse.

Résultats

  • Réduction significative du temps de réponse des pages clés.
  • Charge réduite sur la base de données.
  • Fonctionnement stable sous pic de charge.

04

Les acheteurs ont besoin d'accéder aux rapports d'historique des véhicules directement sur...

Le défi

Les acheteurs ont besoin d'accéder aux rapports d'historique des véhicules directement sur la page de l'annonce. Une intégration fiable avec le service externe Autoistorija.lt était nécessaire sans bloquer les requêtes utilisateurs.

Solution

  • Implémentation d'un client d'intégration avec Autoistorija.lt avec caching des réponses.
  • Déport des requêtes lourdes vers des tâches asynchrones via RabbitMQ.
  • Ajout de la gestion des erreurs, des timeouts et des scénarios de fallback.
  • Assurance du rendu des rapports dans les templates Twig sur la page de l'annonce.

Résultats

  • Les utilisateurs reçoivent l'historique du véhicule directement sur la page de l'annonce.
  • Absence de blocages en cas d'indisponibilité du service externe.
  • Confiance accrue des acheteurs dans les annonces.

05

Les concessionnaires ont besoin d'outils d'évaluation du marché, d'analyse de la performan...

Le défi

Les concessionnaires ont besoin d'outils d'évaluation du marché, d'analyse de la performance des annonces et de l'environnement concurrentiel, ainsi que d'automatisation de la gestion des annonces. Les capacités existantes étaient insuffisantes pour la planification de l'assortiment.

Solution

  • Développement du backend pour Autopulsas : agrégation des données de marché, calcul des métriques par segment.
  • Implémentation de l'analytique sur les annonces du concessionnaire et des concurrents.
  • Ajout d'outils de gestion en masse des annonces (opérations bulk).
  • Création de rapports et d'exports pour les concessionnaires.

Résultats

  • Les concessionnaires ont obtenu des outils de planification d'assortiment et d'évaluation de performance.
  • Automatisation du travail quotidien sur les annonces.
  • Engagement accru des concessionnaires sur la plateforme.

06

Les vendeurs particuliers ont besoin d'outils simples : évaluation du véhicule et possibil...

Le défi

Les vendeurs particuliers ont besoin d'outils simples : évaluation du véhicule et possibilité de payer l'annonce après la vente (« Mokėk, kai parduosi »). Une gestion correcte des paiements et des conditions de service était nécessaire.

Solution

  • Implémentation d'un service d'évaluation du véhicule basé sur les données de marché.
  • Développement de la mécanique « Mokėk, kai parduosi » : paiement différé, suivi de la vente, débit selon les conditions.
  • Intégration de la passerelle de paiement et traitement des statuts via RabbitMQ.
  • Ajout de notifications et d'un tableau de bord vendeur.

Résultats

  • Simplification de la publication d'annonces pour les vendeurs particuliers.
  • Le modèle de paiement flexible a augmenté la conversion des annonces.
  • Conditions et statuts transparents pour le vendeur.

07

Le portail sert près de 600 000 utilisateurs et plus de 11 millions de visites par mois. U...

Le défi

Le portail sert près de 600 000 utilisateurs et plus de 11 millions de visites par mois. Un fonctionnement stable sous pic de charge sans dégradation de la réponse était nécessaire.

Solution

  • Profilage des goulots d'étranglement et optimisation des requêtes SQL et des index.
  • Introduction du caching et du traitement asynchrone des opérations lourdes.
  • Optimisation des templates Twig et de la livraison des assets statiques.
  • Configuration de la mise à l'échelle horizontale des workers.

Résultats

  • Fonctionnement stable sous pic de charge.
  • Réduction du temps de réponse des pages clés.
  • Préparation à la croissance future du trafic.

08

Le portail fonctionne 24/7, et les pannes d'indexation, de files d'attente ou d'intégratio...

Le défi

Le portail fonctionne 24/7, et les pannes d'indexation, de files d'attente ou d'intégrations sont critiques pour l'activité. Un système de monitoring et d'alertes était nécessaire.

Solution

  • Mise en place de la collecte de métriques sur ElasticSearch, RabbitMQ, Redis et les événements métier clés.
  • Implémentation d'alertes sur anomalies (croissance de la DLQ, retards d'indexation, erreurs de workers).
  • Ajout de dashboards pour l'équipe.
  • Intégration de la journalisation des opérations critiques.

Résultats

  • Détection et réaction rapides aux incidents.
  • Réduction des temps d'arrêt.
  • Transparence de l'état de la plateforme pour l'équipe.

09

Des centaines de milliers d'annonces sont publiées sur le portail, dont des doublons, des...

Le défi

Des centaines de milliers d'annonces sont publiées sur le portail, dont des doublons, des publications frauduleuses et incorrectes. Une modération automatisée était nécessaire sans retards pour les vendeurs légitimes.

Solution

  • Implémentation d'un pipeline de modération : règles automatisées + file de vérification manuelle.
  • Ajout de contrôles sur les doublons et les schémas suspects.
  • Déport de la modération vers des tâches asynchrones via RabbitMQ.
  • Ajout d'outils pour les modérateurs et journalisation des décisions.

Résultats

  • Réduction du nombre d'annonces frauduleuses et en doublon.
  • Publication rapide pour les vendeurs légitimes.
  • Outils pratiques pour l'équipe de modération.

10

Toutes les actions sur les annonces (création, modification, modération, suppression) deva...

Le défi

Toutes les actions sur les annonces (création, modification, modération, suppression) devaient être traçables pour le règlement des litiges et l'analytique. Un système d'audit était nécessaire, sans ralentir les processus principaux.

Solution

  • Conception d'un schéma d'audit log lié à l'annonce, à l'utilisateur et à l'action.
  • Implémentation de l'écriture asynchrone de l'audit via RabbitMQ.
  • Ajout d'outils de recherche et d'export des audit logs (ElasticSearch).
  • Assurance de l'immuabilité des enregistrements.

Résultats

  • Audit complet des actions sur les annonces.
  • Règlement rapide des litiges.
  • Base pour l'analytique du comportement des vendeurs.

11

La croissance de l'audience et du nombre d'annonces nécessitait une mise à l'échelle de l'...

Le défi

La croissance de l'audience et du nombre d'annonces nécessitait une mise à l'échelle de l'infrastructure sans réécrire les composants clés. Une solution résiliente aux pics de charge et à la croissance des données était nécessaire.

Solution

  • Déport des opérations lourdes vers des workers séparés, scalables horizontalement.
  • Configuration du sharding des index ElasticSearch.
  • Optimisation de l'utilisation de Redis et RabbitMQ.
  • Introduction de tests de charge et de profilage.

Résultats

  • Infrastructure prête pour la croissance du trafic et des données.
  • Résilience aux pics de charge.
  • Performance prévisible des scénarios clés.

Technologies et sujets

Tags du projet

#Symfony #PHP #Twig #ElasticSearch #RabbitMQ #Redis #Classifieds #Marketplace #High Load #Auto #Autoplius #Baltic Classifieds Group #REST API #Symfony Messenger #Traitement asynchrone #Recherche #Modération #Antifraude #Audit Logging
04
Démarrer un projet

Vous cherchez une approche technique similaire ?

Discutons de votre projet, de l'architecture et de la meilleure stack technologique pour celui-ci.

Parlons-en ↗