
In a microservices architecture, the focus is not on the number of services but on ensuring each service is small, independently deployable, and has clear, well-defined boundaries.
Example: Movie Booking Application
The application is split into several microservices, each responsible for a specific business capability:
1. Movie Service
Acts as the central service of the system.
Manages:
Movie details
Showtimes
Seat availability
Clear responsibility: Movie and show information management.
2. Booking Service
Handles the complete ticket booking workflow.
Manages:
Ticket booking
Seat selection
Booking records
Responsibility: End-to-end booking operations.
3. Pricing Service
Manages:
Ticket pricing
Discounts
Special offers
Responsibility: Dynamic pricing and promotional logic.
4. Customer Service
Handles all customer-related activities.
Manages:
Customer profiles
Customer support
Authentication
Responsibility: Customer identity and management.
5. Review Service
Allows users to:
Submit reviews
Provide ratings
View comments
Responsibility: User feedback and review management.
Key Architectural Insight
Each microservice has:
A single, well-defined responsibility
A clear boundary
Its own deployment lifecycle
Independence from other services
One of the biggest challenges in microservices architecture is identifying the correct service boundaries—deciding what each service should and should not do. These boundaries evolve over time as the system and business needs mature.
Summary
A good microservices architecture consists of:
Small, focused, and independently deployable services
Clear boundaries and responsibilities
Services that collectively form the complete application

