E-Adelia

adelia studio

Wat is E-Adelia?

E-Adelia staat voor Event Adelia en is een specifiek type Adelia programma dat gebruikt wordt binnen de Adelia Message Broker Subscriber Service (AMBSS).

Een E-Adelia programma is ontworpen om messages te verwerken die verstuurt zijn door een broker, zoals Nats, Kafka of RabbitMQ. Maar, het if onafhankelijk van het type broker, een E-adelia programma kan ook messages verwerken van verschillende brokers.

Binnen het Adelia Studio platform is een E-adelia programma een batch programma dat alleen via de AMBSS kan worden aangeroepen.
Het kan geen ander E-Adelia programma aanroepen, maar wel een Visual Adelia Batch programma, dat voor het "Event" Java platform is gegenereerd, of een Server Adelia Batch programma.

Principe

Een E-Adelia programma is gelinked aan een subscriber via de beschrijving in het config/adeliaPgm object.
Het programma verwerkt de events die worden ontvangen in een synchrone en sequentiele manier.
Een corresponderend "handling block" is gekoppeld met elk event.

Allereerst wordt het ON_START event getriggered en wordt het bijbehorende code block OnStart uitgevoerd. Als de initialisatie faalt, zal het ON_START event een negatieve ack terugsturen om de Adelia subscriber te stoppen. OnError en vervolgens onStop worden uitgevoerd.
Als de initialisatie succesvol is, zal er een verbinding worden gelegd tussen de subscriber en de broker. De broker stuurt de berichten naar de native subscriber.

In bovenstaande afbeelding (© Hardis) zijn drie voorbeelden uitgewerkt:

  • Voorbeeld 1: standaard message afhandeling.
    De message wordt verstuurd van de broker naar de native subscriber die de message naar het E-Adelia programma stuurt middels een ON_MESSAGE event.
    De message wordt afgehandeld in het onMessage blok en de message wordt acknowledged (positief of negatief). Deze acknowledgement wordt naar de broker gestuurd via de native subsriber.
  • Voorbeeld 2: error afhandeling
    De broker of native subscriber stuurt een error dat door het E-Adelia programma wordt doorgezet naar het ON_ERROR event. Deze error wordt afgehandeld in het onError block binnen de code.
    Als deze error kritiek is wordt een ON_STOP event gestuurd naar de native subscriber.
    De onStop geeft de gebruikte resources van het E-Adelia programma vrij, de native subscriber verbreekt de verbinding met de broker en de instantie van het programma wordt verwijderd.
  • Voorbeeld 3: verwerking van stop request
    Als de message wordt verwerkt in het onMessage block zal het programma aan de Adelia subscriber een stop verzoek zenden. Het ON_STOP event wordt uitgevoerd aan het einde van het uitvoeren van het onStop block. De native subscriber verbreekt de verbinding met de broker en de instantie van het programma wordt verwijderd.