https://github.com/hasura/demo1-config/tree/master/hasura-db
*_permissions.yml are used to configure permissions.
81 karma · joined June 9, 2014
https://github.com/hasura/demo1-config/tree/master/hasura-db
*_permissions.yml are used to configure permissions.
1. hasura-db requires few custom extensions (written in c) to be installed into postgres which is not possible in heroku's postgres.
2. hasura-db also makes some assumptions about authentication which is handled by the hasura platform.
Essentially, you don't have to deploy anything on your own server. Whatever functionality hasura's 'batteries' can't provide (yet), you write it as another microservice. At the end of the day, your app is composed of several microservices (containers running in the cloud), few hasura provided and few custom written.
Edit: If the op can remove the word 'Haskell' from the title, it would be great.
Coming to your question: Since the underlying db which actually stores your data is postgres, you get all the power of a relational database. With hasura-db you get a 'monogodb' like document api. So, hasura-db + postgres tries to capture the best of both worlds.
Since your data is (designed to be) completely normalized in postgres, 'hasura-search' integrates with elastic search to create denormalised documents for efficient full text search in a declarative way. So, hasura-search esentially listens to any changes to your data in postgres and builds denormalised documents that are inserted/updated/deleted into elasticsearch. So, your elasticsearch data stays in sync with your postgres data in real time without any effort from your side ! Deployment will be at least as easy as on Heroku.