Tech Blog

The Vision of Evolving a DVD Rental System into a DMM-Style Platform — Where to Place the First Step

by Tech Writer
Architecture Design

Introduction

When I say “I’m building a DVD rental system,” people sometimes think “DVD in this day and age?”

But the essence of this project is not about DVDs.

“DVD rental” is the first step chosen as a subject for building a platform business.

DMM started with video tape sales and rental. By leveraging the payment, logistics, and membership management foundations built there across other services, it grew into the massive platform it is today.

This article is about “how to design the first service.”


Organizing the Components of a Platform

When building a platform that offers multiple services, there is always a common infrastructure needed.

Common Infrastructure Layer

FeatureRole
Member management & authUser registration, login, permission management
Payment systemCredit card & e-money processing
Notification systemEmail & push notifications
File storageImage, video & document management
Error monitoringProduction incident detection & alerts

Domain-Specific Layer (DVD Rental in this case)

FeatureRole
Inventory managementWhich DVDs are available and how many
Rental managementWho rented what and when it was returned
Shipping managementWhere to send via home delivery
Content managementFilm info, categories, descriptions

Why “Build the First One Small but Precisely”

There’s a common failure pattern:

“Let’s build it generic from the start, anticipating future expansion.”

This sounds correct on the surface but usually results in “over-engineering.”

I’ve seen many cases where someone tried to build a generic payment platform from the start, and after a year, nothing was working.

“Only implement what’s truly necessary for the first service.”

This is the design policy this time.

Build the membership management needed for DVD rental carefully. Build the payment flow needed for DVD rental carefully. That becomes the “template” for future service expansion.


The “Horizontally Scalable Structure” Considered During Design

While building DVD rental, I always asked “can this be used for another service?”

① Keep Authentication Independent

The admin app authentication and customer app authentication were designed as completely separate systems.

dvd-rental-admin/    ← Spring Security (for admins)
dvd-rental-customer/ ← JWT + custom auth (for customers)

Session-based Spring Security is sufficient for the admin panel. The customer-facing app uses stateless JWT authentication so it can also be called from mobile apps.

When adding a “music download service” in the future, the customer authentication mechanism can be reused as-is.

② Clarify API Responsibility Scope

The customer-facing REST API clearly separates Public and Authenticated.

GET /api/public/films          ← visible without login
GET /api/films/{id}/rental     ← requires login
POST /api/rentals              ← requires login

This design works generically for any service where “product listing is visible to everyone, but purchasing requires login.”

③ Think About Content Management Generically

The feature for managing DVD “film information” can be abstracted as “product information management.”

  • Title, description, category, images
  • Inventory count, price, classification (new/standard)
  • Auto-tag generation via LLM

These are not DVD-specific — they can be used for books, music, and games too.


What to Validate with “the First One”

With this DVD rental, there are things we want to validate for the future platform:

  1. Can we implement a user flow of search → select → cart → payment?
  2. Can we operate a flow of registering, updating, and publishing content in the admin panel?
  3. Can we run it on AWS and understand the cost and operational load?
  4. Is LLM-based automatic content organization practical?

When these answers emerge from DVD rental, expansion to a second service becomes realistic.


Summary

  • “DVD rental” is not the goal; it’s the first subject for learning platform business
  • Designed with the strategy of “scaling the first service’s foundation horizontally,” like DMM
  • Rather than over-generalizing from the start, building “what’s truly needed for DVD” carefully is important
  • Designing authentication, API design, and content management in a “reusable form” is the preparation for the next expansion

“If you want to build something big, build the first thing small but carefully.”

This is the main lesson from this project.


Building a DVD Rental End-User App Alongside the Admin Dashboard — Vue 3 + Spring Boot Architecture Overview

Feel free to send a message

Please send a message if you have any technical questions, feedback, or inquiries.