§04 · Vacaba.id
2024
Backend Developer

Travel Platform API.

5+
Booking verticals
DDD
Architecture pattern
REST
API design
Overview

Full backend for Vacaba.id, a Bali-based travel platform connecting tourists with destinations, activities, vehicle rentals, airport transfers, and transportation tickets. Five booking verticals are served from a single consistent REST API contract, with each vertical modelled as its own bounded context within a shared platform.

Clean Architecture with Domain-Driven Design keeps all business logic — pricing rules, availability constraints, booking state machines — fully decoupled from the framework and database layers. Aggregates and value objects model the booking domain explicitly, making the domain independently testable without spinning up HTTP servers or databases.

Technical highlights

Clean Architecture: domain → use-case → interface → infrastructure, with strict inward-only dependency direction

DDD aggregates and value objects model booking state machines explicitly in the domain layer

5+ booking verticals (destinations, activities, rentals, transfers, tickets) behind a consistent REST contract

Repository pattern isolates PostgreSQL from domain logic — infrastructure can be replaced without touching use cases

Stack
Go
PostgreSQL
Clean Architecture
DDD