In questa pagina
Due aziende clienti hanno entrambe un campo chiamato «attivo». Per uno significa che il cliente ha comprato nell’ultimo anno. Per l’altro che il contratto di servizio è in corso. Un connettore condiviso può spostare correttamente entrambi i campi. Una regola condivisa che li tratti come lo stesso stato commerciale può essere sbagliata per uno dei due. È un esempio illustrativo, non un resoconto di una messa in produzione.
Una discussione sulle piattaforme condivise e sull’adozione locale descrive un’azienda che riutilizza gran parte dell’infrastruttura e svolge comunque un lavoro consistente nell’ambiente di ogni cliente. Le percentuali riguardano quell’azienda. La domanda architetturale generale è dove terminano le meccaniche condivise e inizia il significato locale.
Separa il contratto di trasporto da quello commerciale
Un contratto di trasporto può dire: autenticati all’origine, leggi i record cambiati, conserva gli identificativi, riprova in sicurezza e mostra gli errori. Questi comportamenti possono essere implementati una volta e verificati ripetutamente. Sono preziosi perché ogni integrazione ha bisogno di una strada affidabile per i dati.
Un contratto commerciale stabilisce invece quale record è autorevole, che cosa significa uno stato, quando un’azione è consentita e chi può correggere un errore.
- Trasporto condiviso identità · nuovo tentativo · ID evento
consegna un evento valido
- Regola locale significato · consenso · tempi
decide se l’azione è consentita
- Azione autorizzata scrittura · verifica
registra il risultato
Il contratto commerciale dipende dal flusso. Può usare la stessa origine e destinazione di un altro cliente e richiedere comunque una risposta diversa.
Considera un collegamento tra negozio e piattaforma email. La piattaforma può fornire acquisizione degli eventi, rimozione dei duplicati e una traccia di verifica. Chi possiede il flusso deve definire se «iscritto» equivale a un permesso per uno scopo di marketing preciso, se un acquisto blocca il promemoria per il carrello e come un cambiamento del consenso incide sui messaggi già in coda. Non sono funzioni del connettore deducibili dai nomi dei campi.
La mappatura Tajo illustrata qui sotto copia direttamente tre campi. Manca una decisione: nessuna riga definisce il permesso per il marketing. Riutilizzare il trasporto fa risparmiare lavoro, ma chi gestisce il flusso deve ancora stabilire quale stato consenta quale azione. Una mappatura ordinata rende visibile il vuoto senza colmarlo.
Controlla una sincronizzazione prima dell'avvio
Sincronizza gli aggiornamenti dei clienti con la mia piattaforma email.
Sincronizzazione clienti
| Campo di origine | Campo di destinazione | Regola |
|---|---|---|
email | EMAIL | Diretta |
first_name | FIRSTNAME | Diretta |
last_name | LASTNAME | Diretta |
Anteprima sintetica superata
3 campi mappati · Nessuna scrittura nella destinazione
Schema illustrativo basato sugli strumenti di mappatura di Tajo. Un'anteprima sintetica e una bozza salvata non attivano la sincronizzazione.
| Livello condiviso | Livello locale |
|---|---|
| Autenticazione e rinnovo dei token | Quale soggetto può accedere al flusso |
| Trasporto degli eventi e nuovi tentativi | Quale evento conta come cambiamento commerciale |
| Identificativi stabili e rimozione dei duplicati | Quali record indicano lo stesso cliente reale |
| Registri e strumenti di recupero | Chi risolve uno stato contestato e come |
| Convalida del contratto | Che cosa significano i valori e quando possono guidare un’azione |
La tabella segna un confine progettuale, non afferma che ogni implementazione si possa dividere così nettamente.
Il riuso si rompe quando nasconde il disaccordo
Una piattaforma generica aggiunge spesso un’impostazione per ogni eccezione. All’inizio sembra conservare il riuso. Poi nessuno distingue più se un’opzione sia tecnica, un vincolo legale o una decisione commerciale. Il nucleo condiviso diventa un telecomando per scelte che non gli appartengono.
Cerca una regola invariabile. «Non applicare due volte lo stesso evento d’origine allo stesso record di destinazione» può vivere in un motore condiviso. «Invia uno sconto quando un cliente diventa attivo» non può essere condivisa finché «attivo», il pubblico consentito e la politica dell’offerta non hanno responsabili. Il motore può eseguire una regola approvata, non inventarla.
Questo aiuta anche la manutenzione. Se cambia un’API, il team della piattaforma aggiorna l’adattatore e i suoi test. Se cambia la definizione di cliente idoneo, chi possiede il flusso aggiorna la regola e i casi di prova senza attendere una riscrittura del trasporto. Un confine chiaro porta ogni modifica alla persona che ha autorità su di essa.
Riutilizza le meccaniche senza appiattire il significato
Le regole locali hanno un costo. Una piattaforma senza contratti riutilizzabili diventa un insieme di script su misura. La soluzione è individuare i meccanismi ripetuti prima di astrarre i significati ripetuti. Un elemento condiviso ben progettato potrebbe accettare una condizione tipizzata, il momento dell’evento e un limite all’azione, lasciando locale la definizione commerciale della condizione.
Prova il confine con casi reali: un evento normale, un duplicato, una correzione tardiva e un permesso revocato. Chiedi quale livello è responsabile della risposta in ciascuno. Se non riesci ad assegnare un errore, l’astrazione nasconde la responsabilità. Se un nuovo cliente costringe un valore generico «attivo» ad assumere varie interpretazioni senza relazione, il tipo condiviso è troppo ampio.
L’articolo sulla messa in produzione esamina se una capacità funziona nel flusso reale. Questo chiede che cosa si possa costruire una volta senza cancellare il significato del flusso.
L’interfaccia tra i livelli deve essere abbastanza esplicita da respingere un’ipotesi sbagliata. Un motore condiviso può richiedere ID evento, momento d’origine, soggetto che agisce e scopo dichiarato prima di accettare una richiesta. Il flusso locale può fornire la regola che decide se l’azione è ammessa. Se manca lo scopo, il motore rifiuta; se la regola è ambigua, il responsabile locale decide. È un modo pratico per conservare il riuso senza trasferire l’autorità commerciale al codice generico. Documenta il contratto con un esempio accettato e uno respinto, poi prova entrambi quando cambia uno dei livelli.
Un connettore riutilizzabile dovrebbe rendere il significato locale più facile da esprimere e più sicuro da eseguire. Non dovrebbe far sembrare identiche due promesse diverse solo perché i loro campi hanno lo stesso nome.
Domande frequenti
Che cosa dovrebbe riutilizzare una piattaforma di integrazione?
Spesso può condividere meccaniche stabili come autenticazione, trasporto, idempotenza, nuovi tentativi, registrazione degli eventi e controlli del contratto, quando i requisiti sottostanti coincidono.
Che cosa dovrebbe restare specifico dell’azienda?
Il significato dei campi, l’autorità delle fonti, le regole sul consenso, i tempi richiesti e chi può agire su uno stato vanno definiti per quell’azienda e quel flusso.
Come si può verificare il confine?
Prova a esprimere un nuovo flusso con gli elementi esistenti. Se questo cambia il significato commerciale o nasconde eccezioni in una configurazione generica, mantieni locale quella logica ed esplicita l’interfaccia.