User Tools

Site Tools


Sidebar

Nebol Software Projects:

.NET Class Libraries

Contact info:

johan@nebol.se

nebolintegration

This is an old revision of the document!


NebolIntegration

DOCUMENTATION NOT DONE! WORK IN PROGRESS!

NebolIntegration is a light-weight C# library that manages integrations between systems.

See the nuget page at https://nuget.nebol.se for version history etc.

NebolIntegration requires a number of tables to be created in the storage of your choice. They are prefixed with “Integration”. You will create a class containing the actual integration logic. This class is then provided to the integration engine that will handle the rest.

Features

  • Handles incoming and outgoing integrations
  • Synchronous and asynchronous integrations
  • Extensive logging and error-handling
  • Failed tasks are tried again according to specified schedule
  • Tasks can easily be re-sent, re-processed, and responses can be reprocessed
  • Multiple healthchecks per integration, built-in or custom coded, with configurable intervals and thresholds
  • Statistics
  • Reports and notifications

NebolIntegrationNotifier (windows application, downloaded separately) provides

  • Notification by email when an integration task fails
  • Notification when a healthcheck fails (or when it is returned to healthy state)
  • Daily reports of all integrations with statistics per day, week, month, year

Requirements

Storage for the integration data such as an Entity Framework supported database or any other storage supported by SharpRepository (MongoDb, RavenDb, Db4o, XML etc)

Tutorial

The functionality of NebolIntegration is rather straight-forward but still there are a bunch of concepts to understand in order to properly implement an integration. I think that it's perhaps best explained by a couple of tutorials…

Example 1 - Outgoing asynchronous integration using sqllocaldb and GUID generating webservice

NebolIntegration_Basic_Integration - Creating your first integration

NebolIntegration_Database_and_Flow - So what happened?

NebolIntegration_HealthChecks - What are HealthChecks? Adding a healthcheck.

NebolIntegration_Triggers - What are triggers? Adding a trigger.

NebolIntegration_RetryScheme - How the retry scheme works

NebolIntegration_Incoming_Integration - Creating an incoming integration

NebolIntegration_Reference_and_Message - Managing data

NebolIntegration_More_Integration_Variations - Synchronous integrations, overrides, various trickery

NebolIntegration_Builtin_Integrations - Updating, Cleaning, Statistics, Reports

NebolIntegration_Maintenance - Into the database we go (changing status and overriding with commands)

NebolIntegration_Notifier - Setting up and using the NebolIntegrationNotifier

NebolIntegration_Console_Commands - Utilising the built-in console commands

TODO DOCUMENTATION

Setting up database

Configure the DefaultConnection and run this in Package Manager:

update-database -ConfigurationTypeName NebolIntegrationDbContextConfiguration -Verbose

This will create the necessary tables

The default Configuration-class looks like this:

How to specify other connection string than DefaultConnection ??

Setting up SharpRepositiry

Running the Integration

Additional topics: The database (manual configuration, troubleshooting integration tasks)

Migration

Some breaking changes have been made since the early versions:

SystemIntegration renamed to Integration

Instead of a ISharpRepositoryConfiguration instance the Engine, Integrations etc are now accepting a NebolRepositoryConfiguration instance which has a ISharpRepositoryConfiguration instance plus an optional repository name

Roadmap

Version 1.1.x.x will support Tasks that are automatically repeated (like in Windows Task Scheduler) thus no Submit will need to be made in the ValidatePolling() method (which was one way to go about it).

Version 1.2.x.x will support running multiple engines & multiple threads per integration.

Version 1.3.x.x will support Schedules that you can setup to plan ahead for maintenance windows, or if you only want the integration to be run on business hours etc.

nebolintegration.1636199175.txt.gz · Last modified: 2021/11/06 12:46 by nebol