Documentation for a newer release is available.
View Latest
Esta página no está disponible actualmente en Español. Si lo necesita, póngase en contacto con el servicio de asistencia de Icon (correo electrónico)
Storing Execution Information
Payment Releaser keeps track about releasing progress, for Payment Instruction being released. This provides a observability, and more importantly, a resume point in case of any unexpected errors.
Execution Info
Domain entity holding the information about releasing of the specific instruction is defined in the following way:
package com.iconsolutions.ipf.core.releaser;
import com.iconsolutions.ipf.core.shared.domain.context.UnitOfWorkId;
import lombok.Builder;
import lombok.Data;
import lombok.NonNull;
/**
* Holds info about the releasing status of a single payment instruction, and all payment transactions related to it.
*
* For each instruction we track:
* - general release status, and
* - UnitOfWorkId of the last payment transaction being successfully released, for this payment instruction
*/
@Data
@Builder(toBuilder = true)
public class ExecutionInfo {
/**
* UnitOfWorkId of the payment instruction
*/
@NonNull
private final UnitOfWorkId id;
/**
* UnitOfWorkId of the last (instruction related) payment transaction being successfully released for execution
*/
private final UnitOfWorkId offset;
/**
* status of the releasing process for the instruction
*/
private final Status status;
public enum Status {
IN_PROGRESS,
FAILURE,
COMPLETE;
}
}
MongoDB implementation
ReleaserStore interface defines 2 separate methods:
-
Mono<ExecutionInfo> save(ExecutionInfo releaserExecutionInfo) -
Mono<ExecutionInfo> findById(UnitOfWorkId id)
and is implemented by MongoReleaserStore, using MongoDB database for storing and retrieving release execution information.