How ylehilds/walmart-movies works
Walmart Movies is a React CRUD interface backed by a Spring Boot movie API. Users list, create, edit, and delete movies; the controller delegates operations through a service to a configured store. Store implementations persist either in memory or Cosmos DB and publish create/update/delete events to Kafka. The README also documents Kafka UI and the Cosmos emulator as local operational integrations. Source excerpts establish the main API and persistence calls; the UI-to-API link is visible in the frontend code, while Kafka delivery is documented and implemented by the producer.
Main entry points: CosmosMovieStore.java Cosmos store · MovieEventProducer.java Event producer · InMemoryMovieStore.java Memory store · MovieStore.java Store interface
Components 16
Movie interface
- Movie UI
frontend/src/App.jsx
Movie API
- Movie endpoints
backend/src/main/java/com/walmart/moviesapi/web/MovieController.java - Movie service
backend/src/main/java/com/walmart/moviesapi/service/MovieService.java - Movie model
backend/src/main/java/com/walmart/moviesapi/model/Movie.java
Persistence
- Store interface
backend/src/main/java/com/walmart/moviesapi/store/MovieStore.java - Memory selection
backend/src/main/java/com/walmart/moviesapi/config/InMemoryStoreConfig.java - Memory store
backend/src/main/java/com/walmart/moviesapi/store/InMemoryMovieStore.java - Cosmos selection
backend/src/main/java/com/walmart/moviesapi/config/CosmosStoreConfig.java - Cosmos store
backend/src/main/java/com/walmart/moviesapi/store/CosmosMovieStore.java
Event messaging
- Event producer
backend/src/main/java/com/walmart/moviesapi/events/MovieEventProducer.java - Movie event
backend/src/main/java/com/walmart/moviesapi/events/MovieEvent.java - Event listener
backend/src/main/java/com/walmart/moviesapi/events/MovieEventListener.java
Other components
- Movie user
- Cosmos DB
- Kafka topic
- Kafka UI
Connections 15
- Movie user → Movie UI: uses
README.md - Movie UI → Movie endpoints: requests CRUD
frontend/src/App.jsx - Movie endpoints → Movie service: delegates
backend/src/main/java/com/walmart/moviesapi/web/MovieController.java - Movie service → Store interface: calls operations
backend/src/main/java/com/walmart/moviesapi/service/MovieService.java - Memory selection → Memory store: provides
backend/src/main/java/com/walmart/moviesapi/config/InMemoryStoreConfig.java - Cosmos selection → Cosmos store: provides
backend/src/main/java/com/walmart/moviesapi/config/CosmosStoreConfig.java - Memory store → Store interface: implements
backend/src/main/java/com/walmart/moviesapi/store/InMemoryMovieStore.java - Cosmos store → Store interface: implements
backend/src/main/java/com/walmart/moviesapi/store/CosmosMovieStore.java - Cosmos store → Cosmos DB: reads and writes
backend/src/main/java/com/walmart/moviesapi/store/CosmosMovieStore.java - Memory store → Event producer: publishes changes
backend/src/main/java/com/walmart/moviesapi/store/InMemoryMovieStore.java - Cosmos store → Event producer: publishes changes
backend/src/main/java/com/walmart/moviesapi/store/CosmosMovieStore.java - Event producer → Movie event: publishes payload
backend/src/main/java/com/walmart/moviesapi/events/MovieEventProducer.java - Event producer → Kafka topic: sends events
README.md - Kafka topic → Event listener: delivers events
- Kafka topic → Kafka UI: inspected with
README.md