NebolIntegration is an active project with on-going development, and the documentation is currently lacking. Chunks of it still needs to be written. I will however answer questions to the best of my abilities.
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.
NebolIntegrationNotifier (windows application, downloaded separately) provides
Storage for the integration data such as an Entity Framework supported database or any other storage supported by SharpRepository (MongoDb, RavenDb, Db4o, XML etc)
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 user data (also static vs dynamic tasks)
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
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)
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
Version 1.1.x.x will support “Triggers”, that will trigger processing automatically according to a set cron-schedule thus no Submit will need to be made in the ValidatePolling() method (which was one way to go about it). Also full support for the built-in integrations “Updating” and “Cleaning”
Version 1.2.x.x will support running multiple engines (clients) & 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.
Still not fully planned:
Built-in integrations “Statistics” and “Reports”
The additional tables Machine & Application needed for multiple client support
Notifying clients (via built-in method or RabbitMQ) instead of client polling
Improved built-in UI for command console using NebolConsole and multiple console areas
Console command for listing & viewing queue & result items
Web UI for administration + links in report-mail for errors etc
fixing the issue of direction not being read properly from the db