Golang is turing-complete. A turing-complete language can perform any task that any other turing-complete language can perform. Other turing-complete languages have postgres clients and can use postgres. Therefore, it is possible to implement in golang (and almost certainly already has).
Of course it can be implemented for storagenode. Asking for proof that something can be implemented in a turing-complete language is a bit silly.
This is true, but the posts I’m responding to weren’t saying “pull requests are welcome if someone does the work” they were saying “we have no proof that postgres is more reliable than sqlite.” That is what I was responding to.
Every objection to postgres so far is easily refuted except for the argument that it will take time to implement. I don’t dispute this, and I’d be interested in working on such a patch if we decide at the outset that it would be considered instead of dismissed for incorrect reasons.
Connection pooling eliminates this concern. A dedicated RDBMS is also able to make better decisions about caching data and query plans, and is able to provide more fine-grained locking for writes. (Sqlite does not support concurrent writes at all, which is likely part of the reason for splitting the databases apart. In postgres this feature would have been “free” from the beginning.)
Postgres might very well wind up being slower (though I suspect not) but if it is slower, it won’t be for the reasons brought up here.
However, my bigger concern is that the sqlite implementation seems to have a reliability problem. That should be a substantially bigger issue than concerns about a slight reduction in performance.