Skip to content

Add Casino Engine to Hexagonal Architecture Samples#142

Open
nekzabirov wants to merge 1 commit into
mehdihadeli:mainfrom
nekzabirov:add-casino-engine-hexagonal
Open

Add Casino Engine to Hexagonal Architecture Samples#142
nekzabirov wants to merge 1 commit into
mehdihadeli:mainfrom
nekzabirov:add-casino-engine-hexagonal

Conversation

@nekzabirov
Copy link
Copy Markdown

Summary

Adds nekzabirov/IGaming-Game-Engine to docs/hexagonal-architecture.md → Samples.

Why this fits the Hexagonal section

Casino Engine is a production-grade open-source iGaming/casino engine in Kotlin/Ktor structured strictly around the ports & adapters pattern:

  • Domain layer has zero framework dependencies — aggregates, value objects, repository interfaces, sealed exception hierarchy
  • Application layer declares ports (`IWalletPort`, `IPlayerLimitPort`, `FileAdapter`, `IEventPort`) and orchestrates use cases
  • Infrastructure layer holds adapters: Exposed (PostgreSQL), RabbitMQ, S3, Redis, gRPC clients
  • Three vendor aggregator adapters (Pragmatic Play, OneGameHub, Pateplay) implement the same `AggregatorAdapterProvider` port and are discovered at boot via Koin's `getAll()` — adding a fourth vendor is one new file + one Koin line

Production-tested on moonbet.casino and 2k.ua. Apache 2.0.

The samples section currently has examples in .NET, Node.js, and Java, but no Kotlin/Ktor reference at this scale.

Checklist

  • One PR per category (this is the hexagonal-architecture.md PR; separate PRs for CQRS / EDA / gRPC categories are open / coming)
  • Entry format matches existing: `user/repo - Description`
  • Meaningful description
  • Active and maintained

Production iGaming engine in Kotlin/Ktor demonstrating ports & adapters
at scale across multiple vendor integrations.

Link: https://github.com/nekzabirov/IGaming-Game-Engine
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant