A cloud-native distributed backend platform built with Rust and Go, designed to explore modern backend engineering, microservices, distributed systems, and cloud-native technologies.
Client / Frontend
│
▼
🦀 Rust API Gateway
┌──────────────────────────────────┐
│ Generic Reverse Proxy │
│ Dynamic Routing │
│ Header Forwarding │
│ Request Forwarding │
└──────────────────────────────────┘
│
▼
🐹 Go Auth Service
│
PostgreSQL Database
- Rust
- Axum
- Tokio
- Reqwest
- Go
- Gin
- PostgreSQL
- pgx
- bcrypt
- JWT
- PostgreSQL
- Generic Reverse Proxy
- Dynamic Route Forwarding (
/auth/*) - Request Body Forwarding
- Header Forwarding
- Health Endpoint
- Shared HTTP Client
- Configuration Management
- Service-to-Service Communication
- User Registration
- User Login
- Password Hashing (bcrypt)
- JWT Authentication
- Protected
/meEndpoint - PostgreSQL Integration
- Repository Pattern
- Service Layer
- Unit Tests
- Repository Tests
sentinel/
├── gateway/ # Rust API Gateway
│ ├── src/
│ │ ├── handlers/
│ │ ├── routes.rs
│ │ ├── config.rs
│ │ ├── state.rs
│ │ └── main.rs
│ └── Cargo.toml
│
├── backend/
│ ├── auth-service/
│ │ ├── cmd/
│ │ ├── internal/
│ │ │ ├── handler/
│ │ │ ├── repository/
│ │ │ ├── routes/
│ │ │ ├── service/
│ │ │ └── models/
│ │ └── migrations/
│ │
│ └── shared/
│ ├── auth/
│ ├── config/
│ ├── database/
│ └── logger/
│
└── README.md
Client
│
POST /auth/login
│
▼
Rust Gateway
│
Generic Reverse Proxy
│
POST /login
│
▼
Go Auth Service
│
Verify Credentials
│
Generate JWT
│
▼
Rust Gateway
│
▼
Client
Client
│
Authorization: Bearer <JWT>
│
▼
Rust Gateway
│
Header Forwarding
│
▼
Go Auth Service
│
JWT Middleware
│
Repository
│
PostgreSQL
│
▼
User Profile
| Method | Endpoint |
|---|---|
| GET | /health |
| ANY | /auth/* |
| Method | Endpoint | Description |
|---|---|---|
| GET | / |
Health Check |
| POST | /register |
Register User |
| POST | /login |
Login |
| GET | /me |
Current User |
- Project Structure
- Shared Configuration
- Logging
- PostgreSQL Integration
- Axum Setup
- Generic Reverse Proxy
- Dynamic Route Matching
- Header Forwarding
- Body Forwarding
- Health Endpoint
- Service-to-Service Communication
- Registration
- Login
- JWT Authentication
- Protected Routes
- Repository Pattern
- Unit Tests
- Repository Tests
- User Profiles
- Update Profile
- Search Users
- Query Parameter Forwarding
- Response Header Forwarding
- Request Logging
- CORS
- Rate Limiting
- Metrics
- Tracing
- Redis
- gRPC
- Kafka
- Docker
- Kubernetes
- Prometheus
- Grafana
- Next.js
- TypeScript
- Tailwind CSS
- Authentication
- Dashboard
Sentinel is built to gain hands-on experience with:
- Rust Backend Development
- Go Microservices
- Distributed Systems
- API Gateway Design
- Authentication & Authorization
- Cloud-Native Development
- System Design
- Docker & Kubernetes
- Event-Driven Architecture
- Observability
- Production Backend Engineering
Current Phase: Gateway & Authentication ✅
The project currently consists of a production-style Rust API Gateway routing requests to a Go-based Authentication Service backed by PostgreSQL. Authentication flows, protected routes, and generic reverse proxying are fully functional.
The next milestone is expanding the platform with additional microservices, beginning with a dedicated User Service.