This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
nebolintegration [2021/08/11 22:54] – nebol | nebolintegration [2022/06/16 19:43] (current) – nebol | ||
---|---|---|---|
Line 1: | Line 1: | ||
==== NebolIntegration ==== | ==== NebolIntegration ==== | ||
- | ==== DOCUMENTAION | + | ==== DOCUMENTATION |
+ | NebolIntegration is an active project with on-going development, | ||
NebolIntegration is a light-weight C# library that manages integrations between systems. | NebolIntegration is a light-weight C# library that manages integrations between systems. | ||
Line 7: | Line 8: | ||
See the nuget page at https:// | See the nuget page at https:// | ||
- | NebolIntegration requires | + | NebolIntegration requires |
=== Features === | === Features === | ||
Line 13: | Line 14: | ||
* Handles incoming and outgoing integrations | * Handles incoming and outgoing integrations | ||
* Synchronous and asynchronous integrations | * Synchronous and asynchronous integrations | ||
- | * Extensive logging and error-handling | + | * Extensive |
* Failed tasks are tried again according to specified schedule | * Failed tasks are tried again according to specified schedule | ||
- | * Tasks can easily be re-sent, re-processed, | + | * Tasks can easily be re-sent, re-processed, |
- | * Multiple healthchecks per integration, built-in or custom coded, with configurable intervals and thresholds | + | * Healthchecks, built-in or custom coded, with configurable intervals and thresholds |
+ | * Statistics | ||
+ | * Optional triggers using crontab-format to process integrations | ||
+ | * Scheduling for special handling during maintenance windows etc | ||
+ | * Reports and notifications | ||
+ | * Automated maintenance (log cleaning) | ||
+ | * Grouping of integration processes simplifies administration | ||
+ | * Optional throttling for demanding processes | ||
NebolIntegrationNotifier (windows application, | NebolIntegrationNotifier (windows application, | ||
Line 22: | Line 30: | ||
* Notification when a healthcheck fails (or when it is returned to healthy state) | * 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 | * Daily reports of all integrations with statistics per day, week, month, year | ||
+ | |||
+ | === What it will not do === | ||
+ | |||
+ | * Data translation | ||
=== Requirements === | === Requirements === | ||
Line 27: | Line 39: | ||
Storage for the integration data such as an Entity Framework supported database or any other storage supported by SharpRepository (MongoDb, RavenDb, Db4o, XML etc) | 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... | 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... | ||
- | |||
- | |||
- | ==== Tutorial ==== | ||
Example 1 - Outgoing asynchronous integration using sqllocaldb and GUID generating webservice | Example 1 - Outgoing asynchronous integration using sqllocaldb and GUID generating webservice | ||
- | |||
- | [[NebolIntegration_Tutorial_1]] - Creating your first integration | ||
[[NebolIntegration_Basic_Integration]] - Creating your first integration | [[NebolIntegration_Basic_Integration]] - Creating your first integration | ||
Line 41: | Line 49: | ||
[[NebolIntegration_Database_and_Flow]] - So what happened? | [[NebolIntegration_Database_and_Flow]] - So what happened? | ||
- | [[NebolIntegration_HealthChecks]] - What are HealthChecks | + | [[NebolIntegration_HealthChecks]] - What are HealthChecks? |
- | ==== TODO DOCUMENTATION ==== | + | [[NebolIntegration_Triggers]] - What are triggers? Adding a trigger. |
- | adding a healthcheck | + | [[NebolIntegration_RetryScheme]] - How the retry scheme works |
- | adding | + | |
- | Example 2 - Switching Example 1 to synchronous processing | + | [[NebolIntegration_Incoming_Integration]] |
+ | |||
+ | [[NebolIntegration_Reference_and_Message]] - Managing user data (also static vs dynamic tasks) | ||
+ | |||
+ | [[NebolIntegration_More_Integration_Variations]] - Synchronous integrations, | ||
+ | |||
+ | [[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 ==== | ||
- | Example 3 - Incoming asynchronous integration | ||
Setting up database | Setting up database | ||
Line 65: | Line 86: | ||
Setting up SharpRepositiry | Setting up SharpRepositiry | ||
- | Creating the class | + | |
Running the Integration | Running the Integration | ||
Additional topics: | Additional topics: | ||
- | Adding a Healthcheck | ||
- | Setting up notifier | ||
- | Controlling the Integratiob with console-commabds (using NebolCommand) | ||
The database (manual configuration, | The database (manual configuration, | ||
+ | |||
+ | ==== 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 ==== | ==== Roadmap ==== | ||
- | Version 1.1 will support | + | Version 1.1.x.x will support |
+ | |||
+ | 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 " | ||
+ | |||
+ | The additional tables Machine & Application needed for multiple client support | ||
+ | |||
+ | Notifying clients (via built-in method or RabbitMQ) instead of client polling | ||
- | Version 1.2 will support running | + | Improved built-in UI for command console using NebolConsole and multiple |
- | Version 1.3 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. | + | Console command |
+ | Web UI for administration + links in report-mail for errors etc | ||
+ | fixing the issue of direction not being read properly from the db | ||