We are looking for a consultant for our client...
We start replacing RavenDB with PostgreSQLek.
The consultant will work on our data store and sync/replication challenge.
The services that are running in back office are built using WCF with .NET Framework 4.7.2, MSMQ, NHibernate (and many more, but these are the biggest). As storage engine, we have the SQL Server running for each retailer in the configured environment for them. In the back office, the entire masterdata, data (from customer, loyalty, transactions, configuration, etc) and historical data are stored in the SQL Server.
We are looking to simplify, improve and redesign our front office and sync solution such that a NoSQL storage and Sync framework or CouchDB are no longer needed. We have identified possible improvements on how the masterdata is designed into the SQL Server database. Then we thought that the NoSQL requirement at POS can no longer be easily used because we have RavenDB (v 3.5) running on each POS system. Due to licensing, RavenDB is no longer suitable to continue with their product and therefore we need to transition to another technology. CouchDB can have its benefits but has quite a few differences to what RavenDB offers. Still, even a great product, we think that the entire solution can be even more simplified.
The solution we propose is:
- replace the NoSQL storage at POS with a relational storage with quite some performance that can help us search through 1 million articles with text search support or have facets enablers (like PostgreSQL)
- simplify, unify & align the businesses between HQ and POS under 1 umbrella, or API, that we are going to deploy per functionality, in both HQ and POS
- e.g. create an Article API that both HQ and POS are going to use and rely on the same storage design
- integrate with Debezium platform, in order to synchronize the data from HQ to POS as redesigned and improved solution
Debezium is the technology that relies on the CDC feature of the SQL server in order to detect and push the changes on the tables / rows that are configured to be monitored.
Then Debezium helps to publish these changes to a large set of subscribers via Kafka.
Debezium is an open-source platform that is proven on the community to offer a reliable system to get:
- a full synchronization flow (get the 0 delta time of the entire monitored data set)
- get data changes in a fast and reliable way
- support for multiple types of storage engines
- scale to a large number of endpoints that are connected to receive the changes (imagine a retailer having 900 stores, 2000 stores, etc.)
Language: Swedish and English.
Location: Stockholm/Sundbyberg, travel may be required.