Descrizione del progetto
TradottoIn particolare, l'integrazione dovrebbe trasmettere automaticamente ordini, fatture, clienti, prodotti e inventario in entrambe le direzioni. Un nuovo ordine nel negozio dovrebbe apparire nel sistema contabile come una fattura o una vendita con il cliente correttamente collegato; un cliente creato o modificato da entrambi i lati dovrebbe essere abbinato, non duplicato; e quando le scorte cambiano a causa di una vendita, restituzione o regolazione manuale, l'altro sistema deve rilevarlo. Valutiamo una chiara mappatura dei campi — quindi decidiamo come i campi del negozio si mappano ai campi contabili (tasse, SKU, metodi di pagamento, valute), e quindi questa mappatura può essere esaminata e corretta, non una "scatola nera".
Poiché la sincronizzazione è bidirezionale, i conflitti sono inevitabili, e come li risolviamo è più importante per noi della velocità pura. Se lo stesso cliente o prodotto viene modificato da entrambi i lati tra le esecuzioni, abbiamo bisogno di regole ragionevoli, di una scelta della fonte di verità per ciascuna entità e di un registro che mostri cosa è cambiato, cosa è stato saltato e cosa è stato escalato per revisione umana. Per favore, descrivi come costruirai la sincronizzazione (esecuzioni programmate più quasi in tempo reale dove critico), come eliminerai i duplicati, come ti riprenderai se l'API contabile è inattiva per un minuto e come ci permetterai di riavviare in sicurezza un batch fallito senza raddoppiare le fatture.
— Entità: ordini, fatture, clienti, prodotti, inventario
— Scambio bidirezionale, fonte di verità e registro dei conflitti per ciascuna entità
— Mappatura dei campi modificabile (tassa, SKU, valuta, metodo di pagamento)
— Ripetizioni sicure e riavvii idempotenti senza fatture duplicate