I followed and used Icinga for about 5 years ago. Work as a backend developer, I exploit a lot of information from the techstack of Icinga via SQL, livestatus and Rest api. I saw that the current techstack has some limitations:
- The data is the best fit for graph data. But the traditional database does not support it. Then, graph traversal is impossible. SurrealDB supports graph data. In the feature, if SurrealDB can support GraphQL, it will be better.
- Sync data: well, mysql with lock table. SurrealDB deals with the document, so, no lock table. The notification (state change, config change, etc.) between server and client as the feature of IcingaDB can be done by using Live query.
- Filter data in IcingaDB: there is no way to filter data in Redis value without index by FT.CREATE. We can only filter data in icingadb in sql. Then, switch to SurrealDB can be more easy to filter data. Of course, there is icinga rest api to to the same thing.
- Query powerful: with the query language of SurrealDB, we can do more than relational database.
- An other example is in this link
Please try to look this database a little bit. I think you will see that SurrealDB will be match with Icinga.