Open duribe-vibrent opened 5 years ago
Hi @duribe76, Good point. I'll update the documentation to that effect. Essentially, you will need to implement two interfaces defined in this file. https://github.com/walmartlabs/bigben/blob/master/lib/src/main/kotlin/com/walmartlabs/bigben/entities/EntityProvider.kt
And put that class as "domain" module in https://github.com/walmartlabs/bigben/blob/master/app/src/main/resources/bigben.yaml
As far as Hazelcast is concerned, BigBen uses it in embedded mode so there's really no infrastructure required to set it up separately. There're three places where Hz is used:
So, there're three different functions and Hz allows us to tackle each one of them in embedded mode without any external dependency, so that's why we chose it.
In the documentation, there is a mention that it would be possible to use other data stores by using some extension points, but there are no details on how this could be accomplished. I found the class that implements the interface for Cassandra, but not sure what would need to be done to do it with an RDBMS like MySQL.
Also, is there an alternative to Hazelcast? We don't have that in our infrastructure, but we do have Zookeeper and Redis (which also offers distributed locks).