From what I currently understand (please correct me if I’m wrong) the hApps run on the client and make modifications to the DB from the client, then get confirmation on these changes via other nodes on the network – which are either similar clients machines or designated holo-hosts.
Assuming that’s indeed the case, I was wondering… If there are some processes that are exceptionally heavy, does the dev has control over the processing endpoint? In other words, could I choose that some zomes (I think that’s what functions are called, right?) would run only on server nodes and not clients?
In general terms, Client/Server (or Centralized) mindset can not apply to the Peer-to-Peer distributed architecture, since all nodes are communicating to each other directly.
But there are still possibly and benefit to implement Hybrid Architecture which mean the mixture of Centralized and Peer-to-Peer architecture.
For example for some High Available Background Services or Indexing you can easily rely on the centralize services or servers.
Holochain doesn’t have Oracle problem and this makes this approach totally possible.
By the way, There is a very important point and that you need to be careful where to call external services. For instance, Validation section can be really tricky.
I believe we need more discussions about Oracle topic and Hybrid Architecture.