Sfondo
Attualmente sto lavorando per un'azienda di emissione di biglietti relativamente piccola con molti clienti e clienti.
Abbiamo sviluppato un 'open' (come in esso può essere usato da chiunque) API Graphless Serverless in Node.JS. L'API è costituita da servizi a grana fine che implementano la propria sicurezza, esposti utilizzando GraphQL tramite AWS API Gateway. Utilizziamo questa API noi stessi per fornire funzionalità alle nostre applicazioni web React.
Per completare l'API offriamo anche webhook che consentono agli sviluppatori di iscriversi agli eventi chiave nel nostro sistema (ad esempio, qualcuno che acquista un biglietto, crea un evento, ecc.) facilitando l'integrazione in tempo reale con altri sistemi.
Complication
Ora stiamo cercando di integrarci con un popolare prodotto di email marketing dove i dati dei nostri clienti scorreranno automaticamente in mailing list per più account cliente e dovremo decidere se sarebbe meglio sviluppare la logica di integrazione dell'email marketing come soluzione indipendente che si integra con il nostro sistema solo tramite la nostra API e webhooks, OR, come servizi e code all'interno della nostra API ma esponendo solo 'endpoint HTTP' dove necessario per facilitare il flusso di dati dal prodotto di email marketing al nostro sistema.
Immagino che la best practice potrebbe essere che tutto dovrebbe passare attraverso l'API / webhooks ma ci sembra strano / goffo configurare e consumare i nostri webhooks, specialmente quando abbiamo SNS Topics e SQS Queue sul backend per gestire problemi come questo . D'altra parte, se sviluppiamo questo nel nostro back-end rischiamo di nascondere funzionalità preziose che altri sviluppatori potrebbero voler utilizzare in futuro.
Domanda
L'integrazione dovrebbe essere sviluppata nel nostro back-end insieme ai nostri servizi e code esistenti o come prodotto stand-alone che comunica con le nostre API e webhook?
Naturalmente mi piacerebbe anche sapere perché, e mi piacerebbe davvero sapere se qualcuno sviluppa integrazioni che usano i propri webhook, o se i webhook sono solitamente riservati ai clienti.
Grazie in anticipo per qualsiasi consiglio che hai da offrire:)