Mise en œuvre de la persistance

Lors du déploiement d'une application utilisant le Proxy SDK de manière hautement disponible, la persistance en mémoire que le SDK utilise par défaut peut ne pas être appropriée, et il peut être nécessaire de stocker les informations de transaction ailleurs.

Voici quelques exemples d'options pour ce stockage :

  • Un niveau de données tiers tel qu'un RDBM, une base de données noSQL ou Redis
  • Dans un cookie crypté détenu et présenté par le client

Chacun d'entre eux présente des avantages et des inconvénients et doit être choisi à la discrétion du développeur de l'application.

Lorsqu'une méthode de persistance est choisie, pour que le Proxy SDK l'utilise, il faut mettre en œuvre et passer des fonctions pour gérer chaque opération lors de l'initialisation du SDK:

const config = {
  ...
};

const transactionFunctions = {
  createTransaction: myCreateTransactionFunction,
  getTransaction: myGetTransactionFunction,
  updateTransaction: myUpdateTransactionFunction,
  deleteTransaction: myDeleteTransactionFunction
};

const adaptive = new Adaptive(config, transactionFunctions);

Les prototypes des fonctions sont les suivants :

/**
 * @property {object} transaction value to store.
 * @return {string} the transactionId which the transaction was stored under
 */
function createTransaction(transaction) {}
/**
 * @property {string} transactionId ID of transaction to look up
 * @return {object} looked up transaction
 */
function getTransaction(transactionId) {}
/**
 * @property {string} transactionId index to update
 * @property {object} transaction values to update. These values should be added with any existing values in a union where new values take precedence.
 */
function updateTransaction(transactionId, transaction) {}

/**
 * @property {string} transactionId to delete
 */
function deleteTransaction(transactionId) {}