Gabrielle — components by layer (DDD + ACL)

Anti-corruption: every external field lives in the *_acl files; the dossier feeds assess, draft and verification

Gabrielle — components by layer (DDD + ACL) Anti-corruption: every external field lives in the *_acl files; the dossier feeds assess, draft and verification Anti-corruption layer (*_acl) HubSpot API · contact · deal · company · Architecture component HubSpot API contact · deal · company Gmail API · DWD · real thread · Architecture component Gmail API · DWD real thread Airtable API · config · orders · Architecture component Airtable API config · orders hubspot_acl · *_acl · Anti-corruption layer (*_acl) hubspot_acl *_acl gmail_acl · *_acl · Anti-corruption layer (*_acl) gmail_acl *_acl airtable_acl · *_acl · Anti-corruption layer (*_acl) airtable_acl *_acl dossier_builder · fuses the 3 sources · Architecture component dossier_builder fuses the 3 sources ProspectDossier · aggregate · to_json() · Architecture component ProspectDossier aggregate · to_json() AssessmentPolicy · RuleConfig · recipient · Architecture component AssessmentPolicy RuleConfig · recipient Bedrock · draft_email · Architecture component Bedrock draft_email DynamoDB · tasks · Architecture component DynamoDB tasks reads reads reads assembles drafts writes Legend Backend Database Cloud Security External

Anti-corruption layer

  • • Every external field lives in the *_acl files
  • • Vendor schemas never leak into the domain
  • • hubspot_acl · gmail_acl · airtable_acl map raw APIs to domain shapes

Domain flow

  • • assemble → assess → draft → write
  • • dossier_builder fuses the 3 sources into ProspectDossier
  • • AssessmentPolicy applies RuleConfig; Bedrock drafts; DynamoDB stores tasks
  • • handler.py _process orchestrates