1841
participiants have registered for our events in 2023

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

A Change-Data-Capture Use-Case: Designing an Evergreen Cache

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


LEVELS:

BEGINNER
The presented topic is new to the audience or only little and superficial experience exists. This talk will mainly cover basic aspects of the topic and not go into much detail.

INTERMEDIATE
The presented topic is known to the audience, serious practical experience is expected. This talk might cover some basic aspects of the topic, but will as well go into depth and details.

ADVANCED
The presented topic is well-known to the audience, serious practical experience and a deep understanding are required. This talk will not cover basics of the topic, but will go into depth, might discuss details, compare different approaches, and so on.

ALL
The topic presented is of interest to all levels and does not require any special prior knowledge.

top

Supporting members

Platin

Gold

Silver

 
 

 

About

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.

Design
Partner

 

Contact

Java User Group Switzerland
8000 Zürich
info@jug.ch

© Java User Group Switzerland