Nicolas Frankel Developer Advocate with 15+ years experience in consulting for many different customers, in a wide range of contexts (such as telecoms, banking, insurances, large retail and public sector). Usually working on Java/Java EE and Spring technologies, but with focused interests like Rich Internet Applications, Testing, CI/CD and DevOps. Currently working for Hazelcast. Also, double as a trainer and triples as a book author.
Twitter: @nicolas_frankel
21.01.2021
LOCATION: Online
KEYWORDS: Architecture, Open Source, Technology, Tools
AGENDA: | 18:00-19:30 h: Talk incl. Q/A |
SPEAKER: Nicolas Frankel COMPANY: Hazelcast
SLIDES: 210121_evergreencache-201205165239.pdf
RECORDING: jug.ch YouTube-Channel
When one’s app is challenged with poor performances, it’s easy to set up a cache in front of one’s SQL database. It doesn’t fix the root cause (e.g. bad schema design, bad SQL query, etc.) but it gets the job done. If the app is the only component that writes to the underlying database, it’s a no-brainer to update the cache accordingly, so the cache is always up-to-date with the data in the database.
Things start to go sour when the app is not the only component writing to the DB. Among other sources of writes, there are batches, other apps (shared databases exist, unfortunately), etc. One might think about a couple of ways to keep data in sync i.e. polling the DB every now and then, DB triggers, etc. Unfortunately, they all have issues that make them unreliable and/or fragile.
You might have read about Change-Data-Capture before. It’s been described by Martin Kleppmann as turning the database inside out: it means the DB can send change events (SELECT, DELETE and UPDATE) that one can register to. Just opposite to Event Sourcing that aggregates events to produce state, CDC is about getting events out of states. Once CDC is implemented, one can subscribe to its events and update the cache accordingly. However, CDC is quite in its early stage, and implementations are quite specific.
In this talk, I’ll describe an easy-to-setup architecture that leverages CDC to have an evergreen cache.
Due to the current situation with Covid-19, we are not currently holding any events on site. This event will be broadcast live on the Internet. You do not need to install any software or plugins, everything runs in your web browser. Registered participants will receive a link to the webinar by e-mail shortly before the event.
LEVEL OF TALK: Intermediate
LANGUAGE: Talk: en / Slides: en
Nicolas Frankel Developer Advocate with 15+ years experience in consulting for many different customers, in a wide range of contexts (such as telecoms, banking, insurances, large retail and public sector). Usually working on Java/Java EE and Spring technologies, but with focused interests like Rich Internet Applications, Testing, CI/CD and DevOps. Currently working for Hazelcast. Also, double as a trainer and triples as a book author.
Twitter: @nicolas_frankel
JUG Switzerland aims at promoting the application of Java technology in Switzerland.
JUG Switzerland facilitates the sharing of experience and information among its members. This is accomplished through workshops, seminars and conferences. JUG Switzerland supports and encourages the cooperation between commercial organizations and research institutions.
JUG Switzerland is funded through membership fees.