[bisq-network/proposals] Decentralize the Bisq Markets API service (#165)

wiz notifications at github.com
Sat Jan 11 10:22:59 UTC 2020


> Let's please discuss implementing the new API service using Spring. It has excellent security and caching support, along with everything else we'd need. The pricenode is already implemented in Spring, I'm an expert in the framework, and countless thousands of good Java developers know it well too.

Do you have any performance benchmarks on Spring, compared to other traffic engines we could use? We would likely want to use an actual HTTP reverse proxy, like Apache Trafficserver or nginx, in front of the API service anyway, so it's more about raw power over internal functionality IMO.

And while I love Java as much as the next Bisq developer, I really don't feel Java is the best tool for an API service. Since the Bisq Markets API service currently needs to serve over 100 queries per second, and will likely grow over time, can a JVM backend really handle that? The last PHP implementation certainly could not, even with caching enabled, which is why we needed to move to a rust backend in the first place.

Since rust compiles to machine code it is able to meet the demand, together with 12 instances of Google Appengine Java runtime in front of it to smart-cache and serve all the requests serving as a CDN. I really don't think a single Java node is going to work for the amount of load we are seeing. But to clarify, I am proposing to only use the JSON file dump feature of Bisq java nodes, and use a native code backend for the API service.

The new API daemon can simply import these static JSON files and serve the API. In order to stay decentralized, I'd like to simply add more nodes for scaling, load balanced by DNS, so we don't need add any CloudFlare type CDN service in front of it as a MITM / CPOF.

> I recommend renaming this proposal to "Port Markets API service to Java"

Well this proposal is to specifically to decentralize the Bisq Markets API service by running multiple nodes, which requires more roles and budget expense, and to load balance these nodes using DNS. The way we implement that technically is something we can discuss on Keybase and over pull requests, but not really the scope of this DAO proposal...

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/bisq-network/proposals/issues/165#issuecomment-573303709
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.bisq.network/pipermail/bisq-github/attachments/20200111/1cf5d360/attachment.html>


More information about the bisq-github mailing list