Skip to content

EDSC-4694: Switch from Redis to Valkey#2066

Merged
macrouch merged 2 commits into
mainfrom
EDSC-4694
Jul 6, 2026
Merged

EDSC-4694: Switch from Redis to Valkey#2066
macrouch merged 2 commits into
mainfrom
EDSC-4694

Conversation

@macrouch

@macrouch macrouch commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Overview

What is the feature?

Switch from Redis to Valkey

What is the Solution?

Updated infrastructure stack to add a new Valkey cache. Leaving the existing Redis cache for now, wrote a future ticket to remove it. We can't remove it because stack output variables are being used in the application stack.

Moved from async-redis to ioredis client library. Both are compatible with Valkey, but ioredis is used a lot more and more maintained.

I tested using @valkey/valkey-glide, but did not have luck getting it working with our local environment or the build process.

What areas of the application does this impact?

Scaled images, nlp search

Testing

To switch to Valkey locally (if using homebrew)

> brew services stop redis
> brew uninstall redis

// make sure the port is clear
> lsof -i :6379
// If you see anything with redis, copy the PID
> kill <redis PID>

> brew install valkey
> brew services start valkey

To verify valkey cache works with scaleImage lambda:

  • In devtools disable your browser cache.
  • run npm run start:optionals
  • Load EDSC, visit a collection with browse imagery. You should see some "Cache MISS" messages in the api logs.
  • The first time the page loads, the images should take a few seconds to load in
  • Refreshing the page the images should load very quickly (but not from the browser's cache), you should see "Cache HIT" messages in the api logs

Checklist

  • I have added automated tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings

@github-actions

github-actions Bot commented Jul 1, 2026

Copy link
Copy Markdown

Bundle Size Comparison

Full build details

&gt; earthdata-search@1.0.0 build
&gt; vite build

vite v6.4.3 building for production...
transforming...
✓ 4047 modules transformed.
rendering chunks...
computing gzip size...
static/dist/assets/logo-DBK9nthR.webp                                                      0.97 kB
static/dist/assets/logo-CZz0VEVL.webp                                                      1.14 kB
static/dist/assets/logo-Cycj4Zl7.webp                                                      1.33 kB
static/dist/assets/logo-U_2b2F1P.webp                                                      1.37 kB
static/dist/assets/logo-DrQyzv8O.webp                                                      1.54 kB
static/dist/assets/logo-BtXPiD8D.webp                                                      1.81 kB
static/dist/assets/logo-CBoC93bb.webp                                                      2.16 kB
static/dist/assets/logo-DjzD1LMz.webp                                                      2.39 kB
static/dist/assets/orange-bars-circle-D7AglAGM.webp                                        2.77 kB
static/dist/assets/logo-mTUaHBfB.webp                                                      3.11 kB
static/dist/assets/blue-bars-circle-BoIdEwIS.webp                                          3.67 kB
static/dist/assets/logo-BRHnty9h.webp                                                      4.09 kB
static/dist/assets/cryosphere-icon-DSWEvPIt.svg                                            4.11 kB │ gzip:   1.64 kB
static/dist/assets/logo-m8iUFUyE.webp                                                      4.26 kB
static/dist/assets/logo-BI7QOwpp.webp                                                      4.72 kB
static/dist/assets/logo-CjKnSDvE.webp                                                      7.06 kB
static/dist/index.html                                                                    13.22 kB │ gzip:   3.09 kB
static/dist/assets/plate_carree_earth_scaled-RfqGhO39.png                                 18.14 kB
static/dist/assets/tour-video-thumbnail-BxsZeqvq.webp                                     18.84 kB
static/dist/assets/plate_carree_earth_scaled@2x-BIj0Wstc.png                              45.03 kB
static/dist/assets/image-unavailable-CcXgOtQr.svg                                         52.20 kB │ gzip:  20.77 kB
static/dist/assets/earthdata-search-og-image-Cs5RILJ1.webp                                92.82 kB
static/dist/assets/MODIS-Terra-Swirling-Clouds-In-Atlantic-800x600@2x-DdSR_KXb.webp      132.70 kB
static/dist/assets/MODIS-Terra-Swirling-Clouds-In-Atlantic-2560x1440@2x-CZbMhKXi.webp    224.17 kB
static/dist/assets/MODIS-Terra-Swirling-Clouds-In-Atlantic-800x600@2x-DFWWupvf.webp      381.18 kB
static/dist/assets/MODIS-Terra-Swirling-Clouds-In-Atlantic-2560x1440@2x-BwDp59vN.webp    464.37 kB
static/dist/assets/MODIS-Terra-Swirling-Clouds-In-Atlantic-2560x1440@2x-CeYlmMCD.webp    737.44 kB
static/dist/assets/MODIS-Terra-Swirling-Clouds-In-Atlantic-2560x1440@2x-tQ4uTIyn.webp  1,255.87 kB
static/dist/assets/MODIS-Terra-Swirling-Clouds-In-Atlantic-2560x1440@2x-BqbXRJmQ.webp  1,516.81 kB
static/dist/assets/AdminRetrieval-nNSujMnn.css                                             0.06 kB │ gzip:   0.08 kB
static/dist/assets/AdminPreferencesMetrics-GkGryAtC.css                                    0.10 kB │ gzip:   0.11 kB
static/dist/assets/ChunkedOrderModal-DIli9vpQ.css                                          0.11 kB │ gzip:   0.10 kB
static/dist/assets/TooManyPointsModal-D8ufPyjz.css                                         0.14 kB │ gzip:   0.12 kB
static/dist/assets/AdminRetrievalsMetrics-CT7bgXZt.css                                     0.22 kB │ gzip:   0.13 kB
static/dist/assets/AdminPage-D19229XC.css                                                  0.23 kB │ gzip:   0.16 kB
static/dist/assets/ContactInfo-C7Pr11wu.css                                                0.28 kB │ gzip:   0.18 kB
static/dist/assets/useDeleteSubscription-YPccXDF3.css                                      0.46 kB │ gzip:   0.23 kB
static/dist/assets/ShapefileDropzoneContainer-BG7JE7Dj.css                                 0.53 kB │ gzip:   0.26 kB
static/dist/assets/GranuleFiltersContainer-CfwvM6Mp.css                                    0.59 kB │ gzip:   0.27 kB
static/dist/assets/ShapefileUploadModal-CMzmPyoZ.css                                       0.66 kB │ gzip:   0.32 kB
static/dist/assets/Preferences-DGkx-xES.css                                                0.68 kB │ gzip:   0.24 kB
static/dist/assets/Skeleton-DtMOdDsM.css                                                   0.88 kB │ gzip:   0.34 kB
static/dist/assets/TextWindowActions-aNefZur7.css                                          0.91 kB │ gzip:   0.38 kB
static/dist/assets/RelatedCollection-BaShQZdF.css                                          0.93 kB │ gzip:   0.40 kB
static/dist/assets/CollectionDetailsHighlights-CHDYEfjF.css                                1.24 kB │ gzip:   0.44 kB
static/dist/assets/GranuleResultsHighlights-BIY0O9bb.css                                   1.24 kB │ gzip:   0.41 kB
static/dist/assets/Subscriptions-CYrzsucf.css                                              1.26 kB │ gzip:   0.40 kB
static/dist/assets/EDSCModalContainer-D_JXXJBf.css                                         1.77 kB │ gzip:   0.59 kB
static/dist/assets/AdminProjects-CZeT2VXI.css                                              1.98 kB │ gzip:   0.46 kB
static/dist/assets/AdminRetrievals-DIdJ2AD-.css                                            2.02 kB │ gzip:   0.46 kB
static/dist/assets/DownloadHistory-C2TrZbdc.css                                            2.05 kB │ gzip:   0.47 kB
static/dist/assets/DeprecatedParameterModal-nutVvbLm.css                                   2.12 kB │ gzip:   0.93 kB
static/dist/assets/Projects-5m-RoZO0.css                                                   2.13 kB │ gzip:   0.51 kB
static/dist/assets/EchoForm-VVUehB8V.css                                                   3.47 kB │ gzip:   1.06 kB
static/dist/assets/SearchTour-AJompJPK.css                                                 4.82 kB │ gzip:   1.22 kB
static/dist/assets/index-BOElThXL.css                                                      6.47 kB │ gzip:   1.24 kB
static/dist/assets/OrderStatus-qyLNmnfS.css                                                8.49 kB │ gzip:   1.93 kB
static/dist/assets/createSpatialDisplay-CiT4b-tQ.css                                      10.62 kB │ gzip:   2.41 kB
static/dist/assets/MapContainer-GerI1QoD.css                                              17.00 kB │ gzip:   5.89 kB
static/dist/assets/Project-RbLZgqcX.css                                                   20.04 kB │ gzip:   4.07 kB
static/dist/assets/Search-DWJQ45Qd.css                                                    69.43 kB │ gzip:  10.66 kB
static/dist/assets/index-qtCoU0m5.css                                                    340.08 kB │ gzip: 109.50 kB
static/dist/assets/logo-BHeuky8i.js                                                        0.06 kB │ gzip:   0.08 kB
static/dist/assets/logo-C2M9lK3U.js                                                        0.06 kB │ gzip:   0.08 kB
static/dist/assets/logo-BbJQ0fWs.js                                                        0.06 kB │ gzip:   0.08 kB
static/dist/assets/logo-CW6PQqmQ.js                                                        0.06 kB │ gzip:   0.08 kB
static/dist/assets/logo-CM8gX-og.js                                                        0.06 kB │ gzip:   0.08 kB
static/dist/assets/logo-CGJHAKVD.js                                                        0.06 kB │ gzip:   0.08 kB
static/dist/assets/logo-DOLER09h.js                                                        0.06 kB │ gzip:   0.08 kB
static/dist/assets/logo-C6Ht_tBx.js                                                        0.06 kB │ gzip:   0.08 kB
static/dist/assets/logo-J7t-4CBp.js                                                        0.06 kB │ gzip:   0.08 kB
static/dist/assets/logo-CxvnVTz2.js                                                        0.06 kB │ gzip:   0.08 kB
static/dist/assets/logo-C9HDQHSy.js                                                        0.06 kB │ gzip:   0.08 kB
static/dist/assets/logo-IHV3gtAZ.js                                                        0.06 kB │ gzip:   0.08 kB
static/dist/assets/logo-Dedvhxzp.js                                                        0.06 kB │ gzip:   0.08 kB
static/dist/assets/logo--kH-hKRS.js                                                        0.06 kB │ gzip:   0.08 kB
static/dist/assets/logo-Z4bYAKVs.js                                                        0.06 kB │ gzip:   0.08 kB
static/dist/assets/logo-nOuRrv94.js                                                        0.06 kB │ gzip:   0.08 kB
static/dist/assets/logo-DIxV4RPX.js                                                        0.06 kB │ gzip:   0.08 kB
static/dist/assets/logo-uABdcgsF.js                                                        0.06 kB │ gzip:   0.08 kB
static/dist/assets/pluralize-49vSaAHF.js                                                   0.08 kB │ gzip:   0.09 kB
static/dist/assets/accessMethodTypes-CY5JnOnd.js                                           0.13 kB │ gzip:   0.14 kB
static/dist/assets/commafy-BfQYQOA4.js                                                     0.14 kB │ gzip:   0.14 kB
static/dist/assets/requestDebounceDuration-B92It3cW.js                                     0.16 kB │ gzip:   0.11 kB
static/dist/assets/subscriptions-acnzF98c.js                                               0.41 kB │ gzip:   0.21 kB
static/dist/assets/DownloadsLayout-CDgd_-mF.js                                             0.44 kB │ gzip:   0.25 kB
static/dist/assets/Table-B3gDG99_.js                                                       0.60 kB │ gzip:   0.38 kB
static/dist/assets/DefinitionList-Cs9kiEq_.js                                              0.63 kB │ gzip:   0.39 kB
static/dist/assets/AdminLayout-B6zRdmmL.js                                                 0.63 kB │ gzip:   0.36 kB
static/dist/assets/AdminPage-BFhVWhbr.js                                                   0.68 kB │ gzip:   0.36 kB
static/dist/assets/TooManyPointsModal-CtLA3SKG.js                                          0.74 kB │ gzip:   0.48 kB
static/dist/assets/humanizedQueryValueFormatters-CIZcasg0.js                               1.00 kB │ gzip:   0.54 kB
static/dist/assets/KeyboardShortcutsModal-fCKJ12PG.js                                      1.24 kB │ gzip:   0.72 kB
static/dist/assets/metricsDataAccess-B0dv9eSs.js                                           1.26 kB │ gzip:   0.35 kB
static/dist/assets/Skeleton-Ddc-GNbz.js                                                    1.28 kB │ gzip:   0.58 kB
static/dist/assets/AdminIndex-6BQ9vdgj.js                                                  1.36 kB │ gzip:   0.71 kB
static/dist/assets/index-DtKkk0bz.js                                                       1.64 kB │ gzip:   0.94 kB
static/dist/assets/AdminProject-Bnxa-36_.js                                                1.68 kB │ gzip:   0.85 kB
static/dist/assets/useLazyQuery-riEObfMZ.js                                                1.70 kB │ gzip:   0.89 kB
static/dist/assets/ShapefileUploadModal-DkvBAJAq.js                                        1.83 kB │ gzip:   0.81 kB
static/dist/assets/DeprecatedParameterModal-ZUCEcocV.js                                    2.07 kB │ gzip:   1.16 kB
static/dist/assets/EditSubscriptionModal-bG5zeBcy.js                                       2.23 kB │ gzip:   1.12 kB
static/dist/assets/EarthdataDownloadRedirect-CJCCvXu3.js                                   2.24 kB │ gzip:   0.90 kB
static/dist/assets/AboutCSDAModal-l_ov01Zo.js                                              2.25 kB │ gzip:   0.99 kB
static/dist/assets/ChunkedOrderModal-B_rqX2Ar.js                                           2.34 kB │ gzip:   1.20 kB
static/dist/assets/AdminPreferencesMetrics-C0y9SWnr.js                                     2.41 kB │ gzip:   0.84 kB
static/dist/assets/useCreateRetrieval-gWlKo4oF.js                                          3.31 kB │ gzip:   1.59 kB
static/dist/assets/DownloadHistory-DhF66Z48.js                                             3.41 kB │ gzip:   1.42 kB
static/dist/assets/GranuleResultsHighlights-DLyr9ho1.js                                    3.66 kB │ gzip:   1.35 kB
static/dist/assets/CollectionDetailsHighlights-DxFqxCs3.js                                 3.77 kB │ gzip:   0.99 kB
static/dist/assets/EDSCModalContainer-DOGNJZ8Z.js                                          4.24 kB │ gzip:   1.46 kB
static/dist/assets/AdminRetrieval-DZirsjV5.js                                              4.29 kB │ gzip:   1.78 kB
static/dist/assets/AdminProjects-3mw1aSgx.js                                               4.35 kB │ gzip:   1.59 kB
static/dist/assets/Projects-DnxjAnSS.js                                                    4.40 kB │ gzip:   1.72 kB
static/dist/assets/AdminRetrievals-D7cK4u6a.js                                             4.60 kB │ gzip:   1.65 kB
static/dist/assets/AboutCwicModal-Cf7J5dgo.js                                              4.69 kB │ gzip:   1.92 kB
static/dist/assets/ContactInfo-CFEig0yJ.js                                                 4.71 kB │ gzip:   1.55 kB
static/dist/assets/Subscriptions-B0yZrSj_.js                                               4.79 kB │ gzip:   1.71 kB
static/dist/assets/AdminRetrievalsMetrics-3T36_hrb.js                                      4.82 kB │ gzip:   1.64 kB
static/dist/assets/useDeleteSubscription-DcuGDDis.js                                       6.35 kB │ gzip:   2.44 kB
static/dist/assets/RelatedCollection-B0NgHCYQ.js                                          10.41 kB │ gzip:   3.98 kB
static/dist/assets/Modal-CxVu9v5p.js                                                      10.74 kB │ gzip:   4.05 kB
static/dist/assets/GranuleFiltersContainer-sXg_lO8K.js                                    21.83 kB │ gzip:   5.91 kB
static/dist/assets/index-6FLEC9dI.js                                                      35.34 kB │ gzip:  12.82 kB
static/dist/assets/styles-8kxJ92OC.js                                                     60.27 kB │ gzip:  18.66 kB
static/dist/assets/moment-BAtM24Ew.js                                                     60.92 kB │ gzip:  19.77 kB
static/dist/assets/createSpatialDisplay-D4Ua2R7l.js                                       60.95 kB │ gzip:  17.01 kB
static/dist/assets/OrderStatus-TK7VRjt0.js                                                63.29 kB │ gzip:  17.62 kB
static/dist/assets/lodash-DO8XiTt0.js                                                     92.24 kB │ gzip:  31.91 kB
static/dist/assets/EchoForm-CicmE3wi.js                                                  108.53 kB │ gzip:  33.67 kB
static/dist/assets/SearchTour-cyme8Usm.js                                                117.44 kB │ gzip:  35.77 kB
static/dist/assets/ShapefileDropzoneContainer-BYnJV0S2.js                                119.22 kB │ gzip:  40.01 kB
static/dist/assets/edscUtils-k1cLIsYd.js                                                 141.73 kB │ gzip:  46.95 kB
static/dist/assets/react-CzFTv8Vj.js                                                     230.20 kB │ gzip:  74.44 kB
static/dist/assets/Preferences-NPBxh7Z0.js                                               362.19 kB │ gzip: 114.99 kB
static/dist/assets/Project-BSANR8z3.js                                                   398.37 kB │ gzip: 144.04 kB
static/dist/assets/Search-DGBTjiAK.js                                                    493.83 kB │ gzip: 143.97 kB
static/dist/assets/index-CS1diDdc.js                                                   1,033.79 kB │ gzip: 331.19 kB
static/dist/assets/MapContainer-C4YnDYoj.js                                            1,216.27 kB │ gzip: 236.85 kB
✓ built in 35.13s

The full bundle is smaller than main by 0 kB. 🎉

The index.js is smaller than main by 0 kB. 🎉

Run npx vite-bundle-visualizer to review the bundle in more detail.

File Main Branch Diff
Total 10233.5 kB 10233.5 kB 0 kB
index.js 1070.77 kB 1070.77 kB 0 kB
index.js (gzip) 344.95 kB 344.95 kB 0 kB
index.css 346.55 kB 346.55 kB 0 kB
index.css (gzip) 110.74 kB 110.74 kB 0 kB
Number of files 139 139 0
Build Time 22.53 s 35.13 s 12.6 s

@codecov

codecov Bot commented Jul 1, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 95.71%. Comparing base (bd935b2) to head (1273b72).

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #2066   +/-   ##
=======================================
  Coverage   95.71%   95.71%           
=======================================
  Files         755      755           
  Lines       17563    17563           
  Branches     4939     4935    -4     
=======================================
  Hits        16811    16811           
  Misses        700      700           
  Partials       52       52           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@macrouch macrouch merged commit 303bc58 into main Jul 6, 2026
36 of 37 checks passed
@macrouch macrouch deleted the EDSC-4694 branch July 6, 2026 16:31
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.

3 participants