Connecting to neo4j-graphql websocket for subscriptions? - neo4j

I haven't found any information on how to connect to a websocket to enable graphql subscriptions on a neo4j (3.3) instance with the neo4j-graphql plugin installed.
I've also unsuccessfully tried urls relating to the bolt port (localhost:7687).
Is this possible to do?
If not, could there be a workaround at the level of a separate, subscription-enabled graphql server when using schema delegation down to the neo4j server?

So, neo4j-graphql doesn't implement ws yet
And yes, if calling the db through a graphql server such as aws appsync that would enable subscriptions.

Related

How to traffic data between Google Cloud SQL and Flutter?

Cloud SQL documentation about connecting with external apps didn't helped me much. Isn't there some library to handle data traffic like Firebase's Cloud Firestore and Realtime Database offer?
Either use cloud functions to provide an API for Flutter and access to the DB
or run your custom server in the Google cloud that does that.
SQL databases should never be accessed over the internet directly and instead hidden behind a web server that only exposes a limited or specialized API.

AWS Amplify database options

I am considering using AWS Amplify to create a backend for my app(s). I was hoping to use OrientDB which I have set up on an EC2, but all the examples and tutorials for Amplify only mention DynamoDB. Before I spend a lot of time learning how to use Amplify, is it possible to connect to any type of DB that can be installed on an EC2, or is DynamoDB all that is available?
Yes, you can.
After amplify init and amplify add host
Run amplify add api
Choose REST
Choose Create a new Lambda function
Don't choose CRUD function for Amazon DynamoDB table
Choose Serverless express function (Integration with Amazon API Gateway)
At your project ./amplify/backend/function, you’ll see your lambda express. And then you can connect to any database you want.
Just need to input the connecting DB code.
Amplify is at the moment tied to dynamoDB in a very strong way. But you can use graphQL queries sent to AppSync (the backend layer of amplify) to trigger lambda functions. From there you can target any type of database you want

How to query Titan Graph Database from iOS App

If I set up a graph-database with an AWS DynamoDB backend using the Titan plug-in, how do I then actually send queries to the database and return values? From this Diagram that I found here, it looks like the TinkerPop API can be used to send these queries. But I can't find any information on running TinkerPop on an iOS device. So how do I interact with the database from the app?
Thanks.
TinkerPop and Titan are Java libraries, so if you are writing an IOS app, you should go through the TinkerPop Gremlin Server. As described in the TinkerPop documentation,
[Gremlin Server] Provides a method for Non-JVM languages (e.g. Python, Javascript, etc.) to communicate with the TinkerPop stack.... By default, communication with Gremlin Server occurs over WebSockets and exposes a custom sub-protocol for interacting with the server.
In your IOS app, you can connect to the Gremlin Server using a WebSockets client library, such as SocketRocket (Objective-C) or Starscream (Swift). Then you would need to send a RequestMessage to the Gremlin Server following the format described in the TinkerPop documentation. An initial approach to create a Gremlin Driver in Swift has been attempted (gist).
Alhtough WebSockets is the default connection protocol, you can optionally configure HTTP on the Gremlin Server instead, then make HTTP requests to the server.

Neo4j connection for IBM Watson Analytics

There doesn't seem to be a Neo4j connection available in Watson Analytic Account Settings Data Connections. Has anyone had any experience connecting Watson to a Neo4j database?
Disclaimer: never used IBM Watson Analytics myself.
If it supports JDBC datasources you can probably use the Neo4j JDBC driver, https://github.com/neo4j-contrib/neo4j-jdbc. Be aware that the bolt based JDBC driver is pretty new, so please do report back your experiences.
Since Watson Analytics is a web application, you cannot add your own JDBC driver. If you feel that Neo4j would be useful, you can request an enhancement. Just Google "ibm request for enhancement" to get a link to the site. Or use this link: https://www.ibm.com/developerworks/rfe/
Alternatively, you could write a script uses the Neo4J and Watson Analytics REST APIs to upload data from Neo4J into Watson Analytics.

SignalR on non-Azure Web Farm

I have implemented SignalR support for web application. It works great. The problem I'm dealing now is make it work in non-Azure web farm environment. SignalR supports Windows Azure Service Bus and Redis out of the box. Also there is RabbitMQ implementation on GitHub. All these solutions implement IMessageBus interface.
Based on our current situation we can't use Redis or RabbitMQ. So I have few questions:
1) Is there any alternative solution that uses SQL Server or MSMQ?
2) Is it difficult (possible) to implement your own solution for SQL Server or MSMQ? David's post on SignalR 0.5 (http://weblogs.asp.net/davidfowler/archive/2012/05/02/signalr-0-5.aspx) says they are going to support SQL Server QNS or Service Broker (not SQL Server DB itself) so maybe it's a wrong way at all?
3) Is there a way to work around until this support is implemented? For example, it sounds like the we need to handle state of the connections list between servers. If we know number of nodes and their IPs we can share this information between servers via Web Service calls instead. Does it make any sense?
Damian Edwards appears to have just started working on the SQL scaleout implementation. You can find the details of that implementation here on GitHub and the issue tracking this work can be followed here.

Resources