Jan 2024 – Present

The Ethereal Exchange

Fullstack Developer · Personal Project

Hobby project

The successor to WoW Auction Helper for ingesting, analyzing and presenting World of Warcraft auction data, with regional deployment and crafting analytics.

Tech & tooling

Project

The Ethereal Exchange is the successor to WoW Auction Helper. The project fetches and processes auction, realm, item, media, profession and recipe data from the Blizzard API, and makes the data available through market and crafting views.

The motivation for migrating from Serverless to a Kotlin backend with Spring Boot was twofold.

  • Serverless costs were too unpredictable. During periods where Blizzard had issues with the API, this could lead to large bills, partly because Lambda functions kept running for longer periods of time.
  • I wanted to have a Kotlin/Spring Boot project I could work on in my spare time when work is not too hectic.

Role and contribution

  • Kotlin and Spring Boot for the backend with scheduled sync jobs, REST endpoints, resource-server authentication and Blizzard API integrations.
  • MariaDB and Flyway for schema management, active auction snapshots, hourly and daily statistics, item variants and query-optimized market views.
  • AWS-based storage and deployment with S3, DynamoDB, Cognito, EC2, Docker, CloudFormation, SSM, ECR and GitHub Actions.
  • Angular SSR frontend with realm selection, auction search, crafting search, item details, localization and generated OpenAPI clients.
  • Testcontainers, integration tests, OpenAPI generation, Storybook/design-system components and CI jobs with change classification.