...
When building microservices architecture various parts of the system can interact with the source database. Using publishing events from the server application is not always possible and it might require modifications in various servers that are often legacy.
When utilizing debezium Debezium and kafka Kafka we can connect directly to the database to get notified about any change that happened in the database instantly.
Debezium will be only involved in collecting and publishing the data to kafkaKafka. The purpose of this work is to build an opinionated Node.js layer that will consume Kafka messages to apply some specific filtering and publish messages back to clients using GraphQL subscriptions.
...
- Introduce a stateful live query layer for Graphback based on kafka Kafka stream (https://www.youtube.com/watch?v=g-asVW9JFPw)
- Check the performance of the solution and identify bottlenecks for scalability. (https://github.com/hasura/graphql-engine/blob/master/architecture/live-queries.md#implementing-graphql-live-queries)
- Build a suite of the integration tests for various Graphback use cases
- Provide example app for Debezium
- Build a Node.js OpenShift template application for Graphback that can connect with Kafka
- Build out of the box subscription connector for Offix that will update underlying cache/db
Diagram: https://docsmedia.googlediscordapp.comnet/drawingsattachments/d632235423300714507/e/2PACX-1vQZls0M2H9yUsZhYnXD_hSvtSBEF8lISpm5VBIFGCRw9PtPyznQBl2Yzfl2gqLfFnwZq_qD8t77jZoJ/pub?w=944&h=552669530559701319691/Screenshot_2020-01-22_at_13.15.08.png
Technologies: Nodejs, GraphQL, AeroGear DataSync, React, Apache Kafka
...