rg-dev #63
Witamy w Nowym Roku i zapraszamy na kolejne - 63 - spotkanie grupy rg-dev!
- Grzegorz Oronowicz - Modernizacja Flight API cache za pomocą Redis'a
Opis:
Prezentacja przedstawia zmianę podejścia do cache w API — od prostego rozwiązania opartego bezpośrednio na bazie danych po zaawansowane, rozproszone cache’owanie z użyciem Redis. Omawia rzeczywiste wyzwania, takie jak aktualność danych, prezentuje nowoczesne strategie odświeżania cache’a oraz wprowadza nowe funkcje Redis 8 związane z wyszukiwaniem i synchronizacją danych cache z bazą danych.
Prezentacja przedstawia drogę skalowania API obsługującego rozkłady lotów i ceny — od wczesnej fazy rozwoju aż po obsługę milionów użytkowników. Początkowo API zwracało dane bezpośrednio z bazy danych, jednak wraz ze wzrostem ruchu rosło również jej obciążenie. Skłoniło nas to do wdrożenia rozproszonego cache’owania z wykorzystaniem Redis. Zmiana ta znacząco zmniejszyła obciążenie bazy danych, pozwalając spełnić wymagania wydajnościowe nawet podczas dużych akcji promocyjnych. Jednak początkowa strategia cache’owania oparta wprowadziła znany problem — użytkownicy czasami otrzymywali nieaktualne dane, ponieważ cache był odświeżany dopiero po wygaśnięciu wpisu.
Aby temu zaradzić, analizujemy kilka zaawansowanych strategii cache’owania, w tym cache aside, read-through oraz podejścia write-through i write-behind. Omawiamy zalety i kompromisy każdej z nich, pokazując, jak wybór strategii wpływa na wydajność, spójność danych i doświadczenie użytkownika. Poruszamy również temat prefetchingu cache’a, który polega na masowym wypełnianiu cache’a danymi z bazy w regularnych odstępach czasu lub przy starcie aplikacji, zapewniając błyskawiczne odczyty dla rzadko aktualizowanych danych.
Następnie prezentacja skupia się na najnowszych rozwiązaniach w Redis 8. Redis nie jest już tylko magazynem klucz/wartość — najnowsza wersja wprowadza potężny silnik zapytań obsługujący złożone wyszukiwania oraz natywne przechowywanie danych w formacie JSON. Dzięki wsparciu indeksów oraz Redis Data Integration (RDI) możliwe jest znacznie lepsze zsynchronizowanie danych w cache’u z bazą danych, minimalizując nieaktualność informacji i umożliwiając niemal rzeczywistą synchronizację zmian.
Aby te koncepcje były bardziej namacalne, prezentacja zawiera praktyczną demonstrację. Przykładowe API wykorzystuje nowe funkcje Redis 8, w tym przechowywanie JSON oraz wyszukiwanie z użyciem indeksów, aby efektywnie cache’ować informacje o lotach i utrzymywać ich aktualność. Uczestnicy będą mogli bezpośrednio korzystać z endpointów podczas sesji, doświadczając na żywo, jak strategie cache’owania i integracje z Redis działają w scenariuszach produkcyjnych.
Bio:
Solutions Architect, w liniach lotniczych z prawie 20 letnim stażem w branży. Fan MTB, narciarstwa, koszykówki i WRC. Lubi literaturę science-fiction oraz dobrą muzykę, np. Imagine Dragons. Ostatnio interesuje się także slopestyle’em i „Braćmi Godziek”.
- Magdalena Kunat-Ciunowicz - więcej informacji już wkrótce...
Zapraszamy do kontaktu wszystkich chętnych do wystąpienia podczas kolejnych spotkań!
Zachęcamy do zapisywania się ;)