Closed jan-slegr closed 5 years ago
Jan, The imodel-query-agent sample shows a server side 'agent' which listens for change sets, queries what is in them and takes some action. While the example runs on your local machine, it can also be run on a server.
Here is a link to the example: https://github.com/imodeljs/imodel-query-agent
Hi Colin,
thansk for your explanation. I am aware of the mentioned example, but I thought about it as about "local service" automatically ;-) It's great to know the server variant exists also.
Regards,
Jan
Jan,
I wouldn't say that iModel.js is a "classic client / server" architecture. Instead, we say it is a "distributed database." It follows the "Git" model wherein there can be many copies of the database. Each backend process has a complete copy of the iModel, called a "briefcase" (hence the extension ".bim" for briefcase of iModel). They are synchronized through changesets, just like Git.
Backends can run anywhere - on a desktop or mobile, in which case they run on the same machine as the frontend, or on a cloud computer, in which case we call them "agents". See here.
Agents can be notified of changesets (note, changesets are small, briefcases are big), so they can perform whatever time/resource consuming operations on their own machine so it's infinitely scalable. And of course they have the advantage that they can tell what's changed so they don't have to re-process everything all the time.
HTH, Keith
Hi,
it's more a thought than issue reporting:
As far as I remember iModelJs library now, it's based on classic client - server schema. My question is whether a server processing has been evaluated as possible future iModelHub feature?
Because iModelHub is designed as digital twin repository, I suppose some analysis will require to access all data, which maybe time and resource consuming to create in a form of briefcase to the client.
With regards,