A modern cloud-native gaming platform built with microservices architecture, Azure infrastructure, and .NET Aspire orchestration.
This solution follows a well-organized microservices architecture with clear separation of concerns:
tc-cloudgames-solution/
├── 🛠️ infrastructure/ # Infrastructure as Code
│ └── infra/ # Terraform files (Azure Container Apps, Key Vault, etc.)
├── 🚀 orchestration/ # Development environment orchestration
│ └── apphost/ # .NET Aspire AppHost for local development
├── 🎯 services/ # Business microservices
│ ├── users/ # User management, authentication & access control
│ ├── games/ # Game management, sessions & scoring
│ └── payments/ # Payments, transactions & credits
├── 🧱 shared/ # Shared components
│ └── common/ # Shared Kernel (contracts, events, utilities)
├── 🔄 automation/ # CI/CD automation
│ └── pipelines/ # GitHub Actions workflows orchestrator
└── 📜 scripts/ # Solution automation scripts
└── clone-repos.ps1 # Repository cloning script
Repository | Alias | Category | Description |
---|---|---|---|
tc-cloudgames-infra |
infra |
🛠️ Infrastructure | Terraform IaC for Azure Container Apps, Key Vault, Managed Identity, DNS, ACR |
tc-cloudgames-apphost |
apphost |
🚀 Orchestration | .NET Aspire AppHost for local development environment orchestration |
tc-cloudgames-users |
users |
🎯 Services | User management microservice with authentication, access control & Event Sourcing |
tc-cloudgames-games |
games |
🎯 Services | Game management microservice for sessions, scoring & game flow logic |
tc-cloudgames-payments |
payments |
🎯 Services | Payment microservice for transactions, credits & financial provider integration |
tc-cloudgames-common |
common |
🧱 Shared | Shared Kernel with contracts, integration events, utilities & validators |
tc-cloudgames-pipelines |
pipelines |
🔄 Automation | GitHub Actions workflows orchestrator for centralized CI/CD |
Repository | 🌐 Infra | ⚙️ AppHost | 👤 Users | 🎮 Games | 💳 Payments | ♻️ Shared | 🔁 CI/CD |
---|---|---|---|---|---|---|---|
tc-cloudgames-infra |
✅ | ✅ | |||||
tc-cloudgames-apphost |
✅ | ✅ | ✅ | ✅ | ✅ | ||
tc-cloudgames-users |
✅ | ✅ | ✅ | ||||
tc-cloudgames-games |
✅ | ✅ | ✅ | ||||
tc-cloudgames-payments |
✅ | ✅ | ✅ | ||||
tc-cloudgames-common |
✅ | ✅ | ✅ | ✅ | |||
tc-cloudgames-pipelines |
✅ | ✅ | |||||
tc-cloudgames-solution |
✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
- 🌐 Infra – Resource provisioning, networking, Key Vault, identity management
- ⚙️ AppHost – Local orchestration with .NET Aspire
- 👤 Users – Authentication and identity microservice
- 🎮 Games – Game logic and session microservice
- 💳 Payments – Financial microservice
- ♻️ Shared – Reusable code and contracts between microservices
- 🔁 CI/CD – Automation and deployment workflows
Before you begin, ensure you have the following installed:
- .NET 9 SDK - For building and running .NET applications
- Azure Developer CLI (azd) - For Azure deployment automation
- Dapr CLI - For microservices communication
- Docker Desktop - For containerization
- Terraform CLI - For infrastructure provisioning
- Azure subscription with appropriate permissions
Use the provided PowerShell script to clone all repositories with organized folder structure:
# Navigate to your development directory
cd C:\Projects
# Clone the solution repository
git clone https://github.com/rdpresser/tc-cloudgames-solution.git
cd tc-cloudgames-solution
# Run the automated cloning script
.\scripts\clone-repos.ps1
The script will create the following organized structure:
tc-cloudgames-solution/
├── infrastructure/infra/
├── orchestration/apphost/
├── services/
│ ├── users/
│ ├── games/
│ └── payments/
├── shared/common/
└── automation/pipelines/
# Navigate to the AppHost project
cd orchestration/apphost
# Restore dependencies
dotnet restore
# Run the Aspire AppHost (starts all microservices locally)
dotnet run
This will start the Aspire dashboard and all configured microservices for local development.
# Navigate to infrastructure
cd infrastructure/infra
# Initialize and deploy infrastructure
terraform init
terraform plan
terraform apply
# Deploy applications using Azure Developer CLI
cd ../../
azd up
- Start dependencies: Use Docker Compose or Dapr for external dependencies
- Run AppHost: Execute the Aspire AppHost to orchestrate all microservices
- Develop: Make changes to individual microservices
- Test: Use the integrated testing approach with shared contracts
- Code changes: Push to feature branches
- Automated testing: GitHub Actions run tests and quality checks
- Infrastructure validation: Terraform plans are validated
- Deployment: Automatic deployment to staging/production environments
Each repository contains detailed documentation:
- Infrastructure: Terraform modules, Azure resource configuration
- Services: API documentation, domain models, event schemas
- AppHost: Local development setup, service configuration
- Common: Shared contracts, event definitions, utilities
- Pipelines: CI/CD workflow documentation
- Authentication: Azure Active Directory integration
- Authorization: Role-based access control (RBAC)
- Secrets Management: Azure Key Vault for sensitive data
- Network Security: Virtual networks, private endpoints
- Monitoring: Azure Application Insights, logging
- Fork the relevant repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the individual repository LICENSE files for details.
For questions or issues:
- Open an issue in this repository
- Check individual repository documentation
- Review the troubleshooting guides in each service
TC Cloud Games - Building the future of cloud gaming with modern microservices architecture.