Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Redis backed Event Store #1412

Closed
wants to merge 3 commits into from
Closed

Conversation

srempfer
Copy link
Contributor

  • Mainly for testing if Travis CI supports Redis and what have to be done to get it working

@coveralls
Copy link

Coverage Status

Coverage decreased (-0.7%) to 90.58% when pulling 5fc4af8 on srempfer:gh-684 into 53ce34a on codecentric:master.

@joshiste joshiste force-pushed the master branch 2 times, most recently from 57d7211 to d2b765b Compare November 18, 2020 15:30
@Riggs333 Riggs333 added this to the 2.4.1 milestone Jan 8, 2021
@jonashackt
Copy link
Member

We need to implement a GitHub Actions version of the Redis example also - for example see https://github.com/marketplace/actions/redis-server-in-github-actions

@SteKoe SteKoe removed this from the 2.4.1 milestone Apr 16, 2021
@SteKoe
Copy link
Contributor

SteKoe commented Apr 16, 2021

memo: addresses #684

@shubhamjambhe8
Copy link

I know this PR is in draft but tried this PR implementation in one of my project with Redis Sentinel configuration, here are my observations :-

  1. when using one instance of admin server & N instance of client it works perfect
  2. when used N instance of admin server behind a loadbalancer / proxy & N instance of client it fails (consistency between multiple admin server instance is not present) due to following reason :-
    lets say we have
    - 2 Admin (Admin A, Admin B) server apps behind LB
    - 4 Client (Client 1-4) apps registering themselves via LB endpoint
    i) Now assume if Client 1,3 registers themselves (with status UP) to Admin A app & client 2,4 registers themselves (with status UP) to Admin B,
    ii) during this scenario Admin A does status/info updates only for Client 1,3 it will save the updates in redis data store & its local snapshot repository (using default SnapshottingInstanceRepository)
    iii) similarly Admin B does status/info updates only for Client 2,4 it will save the updates in redis data store & its local snapshot repository (using default SnapshottingInstanceRepository)
    iv) Now since only local snapshot repository are updated the admin UI are not are in sync, for eg:- Admin B might show status of Client 1,3 as UNKNOWN / whatever was the last saved event present in redis for that instance

Possible Fix :- Use pub/sub model between Redis eventstores to publish any saved events by any Admin server instance so other admin instance knows about the change just like HazelcastEventStore

@SteKoe
Copy link
Contributor

SteKoe commented Aug 29, 2023

As this is slightly outdated and needs to be bumped to Spring Boot 3 as well, I will close this PR for now.

@SteKoe SteKoe closed this Aug 29, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants