There is an upcoming historian in Belgium, called Factry, that is looking to build an Ignition historian module, possibly with our help. If we build it, we plan to build it open source, so others can learn from it and contribute to it.
I suggested waiting for Ignition 8.3 since it’s just around the corner. The new in-historian aggregation option in 8.3 could significantly strengthen the use case for such a module.
Seeking Contributions and Advice
We’d love some help building this module! We plan to ask questions here and welcome contributions to the code from the community. Resources like this forum post are already incredibly helpful and have given us a solid starting point, and we have a little experience from when we build our branching component.
Key Questions We Have:
1. Historian Support in 8.3
It seems the Ignition 8.3 historian will initially support only QuestDB, with additional historian connections left for us to build.
Will there be any examples or documentation on building these connections?
Might the QuestDB integration be open-sourced? If yes, this could save us a lot of time and effort.
If not, would this module (built for 7.9) be of any use? It's probably a big stretch, but it’s the only resource I’ve found so far where a history provider is being build.
I very highly doubt they will open source the QuestDB code. I'm also guessing current/existing historian options of using standard databases will not go away.
Others will have to chime in on the other questions.
Eventually yes, but probably not in the short-to-medium term. As in, I wouldn't rely on examples being available for at least six months.
No.
Probably not as helpful as you'd like it to be. The core concepts are similar in very broad strokes, but all of the APIs will be completely different. That example would probably help to make an 8.1 compatible historian, but won't help with 8.3's concepts.
No. The Javadocs are useful reference material but you won't actually be able to build a module until public beta begins and you have access to the SDK to compile against.
This is pretty much too open-ended of a question to answer. The bare minimum starting point would be a working module example that implements a GatewayHook. I'd recommend Gradle as a build system, not out of any particular love for Gradle but because it's where all of our first-party developer time is going. Then you "just" have to implement the historian APIs to hook into the rest of the system. You're, at minimum, going to have to understand our new gateway configuration API, including the new way 'extension points' (in your case, additional historian provider types) are set up, and then the actual historian API itself.
As you get further along, you could talk with our Sales Engineering department, who might have resources to help talk you through more specific implementation details; devs like Kevin H and myself are on the forums but only do public help, pro-bono, very explicitly, and neither of us are really experts in the new historian.