---
title: "Pipeline ETL de sindicação de anúncios imobiliários (Ligneurs)"
description: "Pipeline ETL do PIM Akeneo aos portais imobiliários - entrega multi-formato (XML, CSV, JSON) ao longo de 4 anos de operação continua."
locale: "pt"
canonical: "https://portfolio.josedacosta.info/pt/realizacoes/pipeline-etl-syndication-immobiliere"
source: "https://portfolio.josedacosta.info/pt/realizacoes/pipeline-etl-syndication-immobiliere.md"
html_source: "https://portfolio.josedacosta.info/pt/realizacoes/pipeline-etl-syndication-immobiliere"
author: "José DA COSTA"
date: "2019"
type: "achievement"
slug: "pipeline-etl-syndication-immobiliere"
tags: ["PHP", "Symfony", "Akeneo PIM v2", "REST API", "XML", "CSV", "JSON", "FTP/SFTP", "GitLab CI", "Docker", "Kubernetes", "MySQL"]
generated_at: "2026-04-24T08:31:55.564Z"
---

# Pipeline ETL de sindicação de anúncios imobiliários (Ligneurs)

Pipeline ETL do PIM Akeneo aos portais imobiliários - entrega multi-formato (XML, CSV, JSON) ao longo de 4 anos de operação continua.

**Data:** Janeiro 2019 - 2023  
**Duração:** ~4 anos  
**Função:** Technical Lead depois Project Manager  
**Tecnologias:** PHP, Symfony, Akeneo PIM v2, REST API, XML, CSV, JSON, FTP/SFTP, GitLab CI, Docker, Kubernetes, MySQL

### Indicadores-chave

- Portais parceiros: **-** - Migrados, integrados e mantidos
- Várias dezenas: **-**
- Formatos de exportação: **-** - XML, CSV, JSON
- Duração do projeto: **-** - Evolução continua
- Branches GitLab: **-** - Features e hotfixes documentados
- Volume diário: **-** - Anúncios processados em todos os portais
- Disponibilidade: **-** - Em 4 anos de operação continua

## Apresentação

_Definição e escopo do projeto_

### Natureza

Pipeline ETL automatizado (Extract-Transform-Load) para distribuição multicanal de anúncios imobiliários

### Domínio

Imobiliário / PropTech - B2B (equipes internas, portais parceiros) e B2C (indireto, compradores potenciais)

### Escopo funcional

- Extração automatizada de dados da API REST PIM Akeneo v2
- Transformação no formato específico de cada parceiro (XML, CSV, JSON)
- Entrega automatizada por FTP/SFTP para várias dezenas de plataformas parceiras
- Adaptação multi-formato de imagens (4/3, 16/9, panoramico, quadrado)
- Mapeamento de tipologias imobiliárias (apartamento, casa, duplex, triplex, estudio, T1-T5+)
- Monitoramento de execuções com alertas por email e sistema de monitoramento centralizado
- Capacidade de ativação/desativação individual por parceiro
- Algoritmo de matching SKU para programas reais vs. programas criados manualmente no PIM

### Escolhas tecnológicas e justificativas

- Estado da arte em 2019 - Stack alinhada com o padrão de integração B2B da época: ETL batch e FTP/SFTP eram a norma antes da generalização de webhooks e arquiteturas event-driven.
- PHP / Symfony - Coerente com o ecossistema backend existente. O componente Symfony Console oferecia um framework sólido para execução de comandos batch agendados.
- Akeneo PIM v2 - Escolha estratégica da empresa para gestão do catalogo de produtos. Sua API REST fornecia acesso estruturado a todos os dados de programas e lotes com endpoints versionados.
- Docker / Kubernetes - Cada job de exportação isolado em seu próprio container, evitando conflitos de recursos entre módulos parceiros. K8s no AWS EKS gerenciava scheduling e recuperação automática de jobs falhos.
- GitLab CI - Automatização do ciclo build-test-deploy para cada módulo parceiro de forma independente, permitindo deploys direcionados sem impactar outros feeds ativos.

### Visão geral do sistema

### Arquitetura do sistema

O sistema **"Export Ligneurs"** e o **motor de distribuição automatizada de anúncios imobiliários** do Groupe Pichet. Ele extrai dados de programas e lotes do PIM Akeneo, transforma-os no formato específico exigido por cada parceiro (XML, CSV ou JSON) e os exporta automáticamente para as plataformas de distribuição imobiliária.

O sistema constitui o **elo crítico entre os dados de produtos da empresa e sua visibilidade comercial**: cada anuncio imobiliário publicado nos grandes portais franceses (SeLoger, LeBonCoin, BienIci, LogicImmo...) passa por este pipeline. Qualquer interrupção ou inconsistencia de dados se traduz diretamente em **perda de leads e oportunidades comerciais perdidas**.

Como **unico responsavel técnico** deste sistema, eu era responsavel por todas as decisões de arquitetura, desenvolvimento, deploy, monitoramento e resposta a incidentes - com responsabilidade total sobre um pipeline que alimentava um volume estimado de *****K euros/mes em aquisição de leads**.

Export Ligneurs - Visão geral da arquitetura do sistema

## Objetivos, Contexto, Desafios e Riscos

_Visão estratégica e restrições_

### Objetivos

- Migrar todos os feeds de exportação do antigo PIM v1.4 para o novo PIM v2 Akeneo
- Executar a migração parceiro por parceiro com validação de negócios a cada etapa
- Verificar a consistencia dos dados entre o PIM fonte e os feeds enviados aos portais
- Gerenciar as especificidades de cada portal (formatos de imagem, tipologias, campos obrigatórios)
- Automatizar a supervisão dos feeds (alertas de erro, relatorios de execução)

### Contexto

O projeto foi iniciado durante a **transferencia de conhecimento de Andoni L.** em janeiro de 2019. O sistema existente funcionava no antigo PIM v1.4 e precisava ser totalmente migrado para o PIM v2 Akeneo, mantendo o serviço continuo para todos os portais parceiros.

A migração precisava ser realizada **portal por portal** - cada um com suas próprias especificações de formato, campos obrigatórios, restrições de imagem e mapeamentos de tipologias - tornando impossível uma migração "big bang". Cada parceiro exigia validação individual pelas equipes de negócios antes de entrar em produção.

O sistema fazia parte de um ecossistema de dados mais amplo: upstream, os dados vinham do software de contabilidade e dos ERPs internos alimentando o PIM, enquanto downstream os feeds conectavam-se a uma centena de fornecedores de leads gerando um volume estimado de **1 lead a cada 2 segundos** em todos os portais.

### Desafios

Os portais imobiliários parceiros (SeLoger, LeBonCoin, BienIci...) sao **canais majoritários de aquisição de leads** no mercado imobiliário. Qualquer interrupção ou erro nos feeds se traduz diretamente em **perda de leads e redução do pipeline comercial**. Com várias dezenas de parceiros para migrar individualmente, o projeto exigiu atenção sustentada por vários anos mantendo zero tempo de inatividade nos feeds ativos.

### Riscos

- Inconsistencia de dados - Risco de publicar preços incorretos, imagens erradas ou imoveis ausentes nos portais - impactando diretamente a confianca dos compradores e os resultados comerciais.
- Interrupção de serviço - Qualquer falha de feed significa que os imoveis desaparecem dos portais, causando perda imediata de leads para as equipes comerciais.
- Divergência de formatos - Cada portal tem requisitos unicos (proporções de imagem, codigos de tipologia, campos obrigatórios) - uma abordagem generica era impossível.
- Instabilidade da API - Problemas de conexão com a API PIM Akeneo podiam bloquear todas as exportações simultaneamente, exigindo gestão solida de erros e logica de retry.

### Decisões de arquitetura chave

- Arquitetura modular por parceiro - Um módulo isolado por portal ao inves de um motor generico - Isolamento de falhas: um bug em um módulo não impacta os outros parceiros. Deploy e teste independente por feed.
- Migração progressiva ao inves de big-bang - Migração portal por portal com validação de negócios a cada etapa - Raio de impacto limitado a um parceiro por vez, com rollback imediato em caso de problemas.
- Processamento batch ETL ao inves de streaming em tempo real - Exportações batch agendadas por CRON ao inves de publicação orientada a eventos - Os parceiros consumiam via depositos FTP/SFTP, não webhooks. Tempo real teria adicionado complexidade sem beneficio.
- Pre-geração multi-formato de imagens - Pre-gerar todas as variantes de formato centralmente ao inves de sob demanda por parceiro - Evita processamento redundante da mesma imagem em multiplos portais e garante conformidade na origem.

### Pipeline de dados ETL

Decisão

Justificativa

Pipeline Extract-Transform-Load para geração de feeds de parceiros

## As etapas - O que eu fiz

_Progressao cronologica do projeto_

- Fase 1 - Transferencia de conhecimento e migração inicial - Janeiro 2019 - Unico responsavel técnico em 2 semanas após o handover de Andoni L. - Migração do primeiro lote: SeLoger Neuf, LogicImmo, TULN, Paru Vendu - Checklist de aceitação estabelecida e reutilizada nas migrações seguintes
- Fase 2 - Desenvolvimento de funcionalidades e novas integrações - Junho - Setembro 2019 - Integração do portal BienIci com adaptação de imagens dedicada - Adaptação do feed ImmoNeuf: conversão 16/9 para 4/3 - Estabilização dos feeds SeLoger e Knock
- Fase 3 - Estabilização e correções críticas - Janeiro 2020 - Implementação de garde-fous de validação de preços antes da publicação - Circuit breaker e retry exponencial nas chamadas a API PIM - Logging estruturado para reduzir o tempo de diagnostico
- Fase 4 - Novos parceiros e evolução continua - Junho 2020 - 2023 - Criação das integrações Investimeo e BienIci - Remoção limpa do parceiro Marketshot sem efeitos colaterais - Resolução das anomalias NEEDOCS, BienIci e Green Valley

## Os atores e interações

_Ecossistema colaborativo_

### Coordenação e colaboração

### Pessoas envolvidas

- Andoni L. - Predecessor - Gestão da transferencia completa de conhecimento. Alcance da operação autonoma completa do sistema de exportação em 2 semanas, tornando-me a unica referencia técnica para todo o escopo.
- Gaetan B. - Referente de negócios - Co-definição e aplicação dos critérios de aceitação para cada migração: precisao de dados, conformidade de imagens, mapeamento de tipologias. Criação de checklist de validação reutilizavel.
- Leslie A. - Referente de negócios - Condução do processo de aceitação funcional, coordenação entre correções técnicas e prioridades de negócios para manter a velocidade de migração.
- Franck C. - Gerente (N+1) - Reporte do progresso das migrações, avaliação de riscos e necessidades de recursos. Recomendações técnicas para decisões de coordenação com fornecedores.
- Sebastien B. - Equipe prestadora - Coordenação do cronograma de deploy em produção. Estabelecimento de protocolo de deploy: validação preprod, aprovação de negócios, deploy prod, janela de monitoramento 24h.

Como **unico responsavel técnico**, eu coordenava diretamente com os stakeholders de negócios, fornecedores externos e portais parceiros. Cada migração envolvia definir critérios de aceitação, pilotar ciclos de validação e tomar decisões de go/no-go para deploy em produção. Isso exigia traduzir restrições técnicas em termos de negócios e vice-versa.

## Os resultados

_Impacto para mim e para a empresa_

### Para mim

- Responsabilidade técnica completa de um sistema crítico impactando diretamente a receita
- Decisões de arquitetura autonomas com responsabilidade total pela confiabilidade e qualidade dos dados
- Projeto de 4 anos pilotado com equipes de negócios, fornecedores externos e várias dezenas de portais parceiros
- Ciclo de vida completo: arquitetura, desenvolvimento, deploy, monitoramento e resposta a incidentes
- Liderança transversal nos processos de validação e onboarding de parceiros

### Para a empresa

- Várias dezenas de portais parceiros migrados do PIM v1.4 para v2 Akeneo sem interrupção de serviço
- 2 novas integrações de parceiros construidas do zero (BienIci, Investimeo)
- Vários milhares de anúncios processados diáriamente em todos os portais parceiros
- 99,5%+ de disponibilidade em 4 anos, tempo medio de resolução de incidentes inferior a 4 horas
- Tipologias imobiliárias padronizadas em todos os feeds, reduzindo relatos de inconsistencia

## O que aconteceu depois

_O que aconteceu após a entrega_

### Evolução do sistema

**Resultado imediato**: Após a onda de migração de 2019, passagem para **fase de manutenção continua** com adição de novos parceiros e resolução de anomalias conforme detectadas.

**A medio prazo**: Resiliencia comprovada ao longo de 4 anos, absorvendo mudancas de formato dos parceiros e evoluções internas do modelo de dados.

**Perspectiva de longo prazo**: Tornou-se uma **peca de infraestrutura fundamental** alimentando o pipeline comercial. A arquitetura modular permitiu evoluir para várias dezenas de portais sem redesign, e qualquer desenvolvedor pode adicionar um parceiro seguindo os padrões estabelecidos.

## Meu olhar crítico

_Analise retrospectiva honesta_

### O que funcionou bem

- Migração portal por portal: risco mínimo, validação de negócios a cada etapa, rollback imediato
- Arquitetura modular: adição/modificação/desativação de feeds sem efeitos colaterais
- Onboarding padronizado: integração de novos parceiros passou de semanas para dias

### O que poderia ter sido melhor

- Um dashboard centralizado teria evitado verificar alertas de email individuais
- Testes de integração automatizados por formato de parceiro teriam detectado regressoes mais cedo

### Se eu tivesse que refazer hoje

- Em 2026, optaria por uma abordagem event-driven (Kafka/RabbitMQ) ao inves de batch CRON, com monitoramento observability-first (OpenTelemetry, Grafana Tempo)
- Um registro de especificações de parceiros desde o primeiro dia para reduzir o tempo de onboarding pela metade
- Testes de integração automatizados contra o schema de cada parceiro antes do deploy
- Um dashboard de monitoramento centralizado em tempo real ao inves de alertas por email

### Lições-chave aprendidas

- Em sistemas multi-parceiros, não existe "solução universal" - cada integração tem suas restrições
- Projetos de longo prazo exigem mentalidade de manutenção desde o primeiro dia
- Em sistemas críticos para receita, observabilidade importa mais do que prevenir cada falha

### Contexto adicional

- Cronologia cumulativa de migração dos parceiros
- Distribuição por tipo de parceiro
- Distribuição dos formatos de exportação
- Status de migração dos parceiros
- Distribuição do esforco técnico
- Tipologias imobiliárias gerenciadas

## Competências aplicadas

_Competências técnicas e humanas aplicadas_

- **Arquitetura e Design de Sistemas** - Concepção da arquitetura ETL completa: pipeline modular por parceiro, batch ao invés de tempo real, pré-geração centralizada de imagens multi-formato
- **Data Engineering & ETL** - Pipeline ETL ponta a ponta do PIM Akeneo para várias dezenas de portais: extração, transformação multi-formato (XML/CSV/JSON), entrega FTP/SFTP, monitoramento
- **Desenvolvimento Full-Stack** - Único responsável técnico ao longo de 4 anos: PHP/Symfony, integração Akeneo PIM v2, processamento de imagens, geradores de formato, ferramentas de monitoramento
- **Gestão de Projetos** - Pilotagem da migração portal por portal ao longo de 4 anos com processo de onboarding padronizado, checklists de validação e garantia de zero-downtime
- **Gestão de Stakeholders** - Coordenação dos referentes de negócio, fornecedores externos e portais parceiros - decisões go/no-go e tradução entre restrições técnicas e de negócio
- **REST API Design** - Integração da API REST PIM Akeneo v2 para extração e de várias dezenas de endpoints parceiros (APIs REST e depósitos FTP/SFTP)
- **Resolução de Problemas e Pensamento Crítico** - Correções de preços no mesmo dia, padrões defensivos (circuit breaker, retry exponencial), resolução de restrições únicas por parceiro, logging estruturado para diagnóstico rápido
- **DevOps & CI/CD** - Deploy Docker/Kubernetes com GitLab CI por módulo parceiro, possibilitando a migração zero-downtime do PIM v1.4 para v2

## Trajetória relacionada

_Experiência profissional ligada a esta realização_

- **Technical Lead · Fluxos e Produtos: conteúdos e integração empresarial**

## Galeria de imagens

_Capturas e visuais do projeto_

## Você tem um Pipeline ETL de sindicação para projetar ?

Entreguei um Pipeline ETL de sindicação multi-portais: extração PIM, transformação multi-formato (XML/CSV/JSON), entrega FTP/SFTP e monitoramento ao longo de 4 anos de operação contínua. Vamos conversar sobre seu contexto.

**Entrar em contato**
