🏨 Modern Reservation System Documentation
Welcome to the comprehensive documentation for the Modern Reservation System - a cloud-native, microservices-based hotel reservation platform built with modern technologies and event-driven architecture.
🚀 Quick Start
- Getting Started - Setup and run the application
- DEV Quick Reference - Daily development commands
- Clean Restart Guide - Fresh environment setup
📚 Documentation Sections
Section | Description | Link |
---|---|---|
🔌 API Documentation | Complete API reference for all services | View API Docs |
🏢 Business Services | Java Spring Boot microservices documentation | View Business Services |
🏗️ Architecture & Design | System design and architectural decisions | View Architecture |
🚀 Deployment | Infrastructure and deployment guides | View Deployment |
📖 Developer Guides | Development workflows and best practices | View Guides |
🔌 API Documentation
- Business Services API - Java Spring Boot microservices
- Analytics Engine - Real-time analytics and reporting
- Availability Calculator - Room availability computation
- Payment Processor - Secure payment handling
- Rate Management - Dynamic pricing engine
- Reservation Engine - Core booking logic
🏗️ Architecture & Design
- Event-Driven Architecture - System architecture overview
- Kafka Implementation Guide - Event streaming implementation
- Kafka Quick Start - Getting started with Kafka
- Implementation Plan - Development roadmap
- Kafka Summary - Kafka integration overview
🔧 Development Guides
- DEV Quick Reference - Daily development workflow
- Script Organization - Development scripts overview
- Single Entry Point - Unified dev.sh command reference
- Clean Restart Guide - Environment reset procedures
📊 Event Streaming (Avro & Kafka)
- Avro Quick Reference - Working with Avro schemas
- Avro Migration Complete - Migration guide and results
- Kafka Quick Start - Kafka development guide
- Kafka Implementation - Detailed implementation
🚀 Deployment
- Network Isolation Guide - Security and networking
📋 Project Management
- Product Requirements Document - Business requirements
- Project Development Plan - Development timeline
- Phase 0 Complete - Initial setup completion
🎯 Common Tasks
Daily Development
# Start the system
./dev.sh start
# Check status
./dev.sh status
# View logs
./dev.sh logs reservation-engine
# Stop services
./dev.sh stop
Fresh Environment
# Complete clean restart
./dev.sh clean
# With options
./dev.sh clean --keep-data
./dev.sh clean --skip-maven
Testing
# Test Avro events
./dev.sh test-avro
# Check dependencies
./dev.sh check-deps
# Health check
./dev.sh check-health
🏗️ System Architecture
Technology Stack
- Backend Services: Java (Spring Boot) + Node.js (NestJS)
- Event Streaming: Apache Kafka with Avro (Schema Registry)
- Database: PostgreSQL
- Caching: Redis
- API Gateway: Node.js (NestJS)
- Service Discovery: Eureka
- Distributed Tracing: Zipkin
- Containerization: Docker
Microservices
- Java Services:
- Reservation Engine
- Payment Processor
- Rate Management
- Availability Calculator
- Analytics Engine
- Batch Processor
- Node Services:
- API Gateway
- Notification Service
- Audit Service
- Channel Manager
- WebSocket Service
- Housekeeping Service
- File Upload Service
Infrastructure Services
- Kafka (Port 9092) - Event streaming
- Schema Registry (Port 8085) - Avro schema management
- PostgreSQL (Port 5432) - Primary database
- Redis (Port 6379) - Caching layer
- Eureka (Port 8761) - Service discovery
- Zipkin (Port 9411) - Distributed tracing
- Kafka UI (Port 8090) - Kafka monitoring
- PgAdmin (Port 5050) - Database administration
📖 Key Features
Event-Driven Architecture
- Asynchronous Processing: Non-blocking event handling
- Loose Coupling: Services communicate via events
- Scalability: Horizontal scaling capabilities
- Resilience: Fault-tolerant event processing
Avro Schema Evolution
- Schema Registry: Centralized schema management
- Version Control: Schema versioning and compatibility
- Type Safety: Strong typing for events
- Backward Compatibility: Safe schema evolution
Development Experience
- Single Entry Point:
./dev.sh
for all operations - Clean Restart: Fresh environment in minutes
- Comprehensive Logging: Full observability
- Hot Reload: Fast development iteration
🔗 Quick Links
Web Interfaces
- Kafka UI - Monitor Kafka topics and consumers
- Eureka Dashboard - Service registry
- Zipkin - Distributed tracing
- PgAdmin - Database management
- Schema Registry - Avro schemas
Development Tools
- Dev Quick Reference - Command cheat sheet
- Clean Restart Guide - Reset environment
- Avro Quick Reference - Event development
🤝 Contributing
Development Workflow
- Review the Project Development Plan
- Check the Implementation Plan
- Follow the DEV Quick Reference
- Use
./dev.sh
for all operations
Code Organization
/apps/backend/java-services/
- Java microservices/apps/backend/node-services/
- Node.js services/apps/frontend/
- Frontend applications/libs/shared/
- Shared libraries/infrastructure/
- Infrastructure as code/scripts/
- Development scripts
📞 Support
For issues, questions, or contributions:
- Review the documentation in this folder
- Check the main README
- Explore the architecture guides
📄 License
[Your License Here]
Last Updated: October 7, 2025 Version: 1.0.0 Repository: github.com/red2n/modern-reservation