Content Filter
L'élagage du message — à ne pas confondre avec le Message Filter qui jette le message entier.
Problème
Un message entrant porte 200 champs ; le consumer downstream n'en utilise que 30. Transmettre les 170 inutiles expose à des risques RGPD, gonfle les coûts de bande passante, et complique le schéma cible.
Forces
- Les flux EDI partenaires sont volontairement riches — un IFTMIN peut peser 200 KB.
- Le downstream pull pour traitement ne tolère pas 200 champs (schéma trop large).
- Certains champs sont PII et ne doivent pas circuler hors enveloppe sécurisée.
- Le filtrage doit être traçable pour audit (qui filtre quoi quand).
Solution
Insérer un composant Content Filter dans le pipeline. Il prend le message entier, sélectionne / masque / supprime les champs selon une whitelist (ou blacklist), et émet un message réduit. La sélection est codifiée (XPath, JSONPath, XSLT pour XML ; jq / mapping rules pour JSON). Le filtre conserve un audit log (champs supprimés, raison).
Implémentation EDI
En EDI, le Content Filter est typique entre le hub d'ingestion et les consumers internes : on retire les champs RGPD inutilisés (date de naissance, numéros de carte de fidélité) après le control fonctionnel, on conserve seulement les champs comptables / opérationnels. Implémentations : Apache Camel `<setBody>` avec XPath, MuleSoft DataWeave avec `// commenté // fields removed`. Le pattern est complémentaire du Claim Check — Content Filter pour les champs courts, Claim Check pour les blobs.
Anti-patterns
- Filter qui re-définit silencieusement le schéma — les consumers ne savent pas ce qui leur manque.
- Filter qui supprime des champs juridiquement requis (numéro de TVA, contrats partenaires) — risque de non-conformité.
- Filter sans audit — impossible de prouver pourquoi un champ a disparu en cas de litige.
- Filter qui se contredit avec le Content Enricher downstream — gaspillage de cycle.
Patterns liés
- Message Filter — jette le message ENTIER (vs champs).
- Content Enricher — opération inverse — ajouter des champs.
- Claim Check — externaliser un gros payload.
- Message Translator — transformation de schéma plus large.
Sources
- Hohpe G., Woolf B. — EIP, Content Filter (p. 342). www.enterpriseintegrationpatterns.com/patterns/messaging/ContentFilter.html
- Apache Camel — Content Filter EIP. camel.apache.org/components/4.4.x/eips/content-filter-eip.html