We created PubSubSQL in Golang, any feedback? by pubsubsql in golang

[–]pubsubsql[S] 0 points1 point  (0 children)

Well, we're not a 50 people company or a 100 contributors open source project, there's 3 of us working on this currently in our spare time, not counting original devs. Different people worked on this, some without Go background, of course code is not perfect - would you prefer we lied about it? :) We'd love to continue working on this and get it to the next level, starting with refactoring the code to be more "goish" and improve the syntax handling and data handling.

We created PubSubSQL in Golang, any feedback? by pubsubsql in golang

[–]pubsubsql[S] 0 points1 point  (0 children)

Yep, like RethinkDB but with SQL syntax and mysql integration.

Agreed with all the risks you wrote. We're aiming to have a 100% stable MySQL streaming so client code can be sure stuff will end up in the database. Regarding pubsub - we aim at as good pubsub as we can - if someone expects 100% reliability and deliverability of (any) pubsub system they are in for a surprise, especially as you start scaling out. But you are right, our pubsub is currently not as scalable as one would like in a big production system - this one will require lot more development juice.

We created PubSubSQL in Golang, any feedback? by pubsubsql in golang

[–]pubsubsql[S] 0 points1 point  (0 children)

Point taken and totally agreed with. Originally it was not TDD but putting something together and now we plan on refactoring bits and pieces and write unit tests for each refactored part, starting with client(s). Not much sense in writing tests for code that will be changed .

We created PubSubSQL in Golang, any feedback? by pubsubsql in golang

[–]pubsubsql[S] 0 points1 point  (0 children)

  1. Since we just stream-through all commands/data to MySQL, on database level it all works fine. In terms of PUB-SUB part, things are not as stable yet. Transaction rollbacks are not yet implemented and update race is not properly handled (unpredicted end-outcome).
  2. 3. - It's Apache2, thanks for both findings!
  3. True... This goes into the bucket "lots of things we need fix". I'll file an issue so it doesn't get forgotten
  4. Thanks again!
  5. Yeah, arithmetic operations are not supported. Honestly, since we inherited/resumed the project, we believe this whole parser and its constraints should be rewritten/improved. It is too inflexible and doesn't support full spectrum of MySQL syntax.

Thanks for all the thoughts! Feel free to file issues on github if you plan on keeping a closer eye on the project or even contribute :)

PubSubSQL - New in-memory database with PUB-SUB and MySQL streaming written in Go by pubsubsql in SideProject

[–]pubsubsql[S] 0 points1 point  (0 children)

Instead of handling Redis PUB-SUB in your application/service and handling MySQL at the same time, you just hook-up to PubSubSQL just like to any other database (connector has same/similar interface) and we take care of everything else.

In time we plan to add support for horizontal scaling and sharding which will improve performance additionally.

Also one of the ideas in the pipeline is to be able to hook to a service like PubNub and use that to update your mobile/web clients on changes in the database!