{"id":50167780,"url":"https://github.com/nekzabirov/IGaming-Game-Engine","last_synced_at":"2026-05-28T23:01:34.320Z","repository":{"id":328794732,"uuid":"1094544202","full_name":"nekzabirov/IGaming-Game-Engine","owner":"nekzabirov","description":"Open-source iGaming/casino engine in Kotlin/Ktor — aggregator integrations (Pragmatic Play, OneGameHub, Pateplay), betting lifecycle, freespins, gRPC API. Hexagonal + DDD + CQRS, RabbitMQ event-driven. Apache 2.0.","archived":false,"fork":false,"pushed_at":"2026-05-24T12:58:09.000Z","size":1228,"stargazers_count":7,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-05-24T13:22:48.623Z","etag":null,"topics":["casino","casino-games","casino-gaming-platforms","cqrs","domain-driven-design","event-driven","gambling","grpc","hexagonal-architecture","igaming","igaming-software","kotlin","ktor","microservice","onegamehub","pateplay","pragmatic-play","rabbitmq","slots","turnkey-casino-solutions"],"latest_commit_sha":null,"homepage":"https://1638.cloud/","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nekzabirov.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-11T21:13:43.000Z","updated_at":"2026-05-24T12:58:12.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/nekzabirov/IGaming-Game-Engine","commit_stats":null,"previous_names":["nekzabirov/igaming-aggregator-core","nekzabirov/igaming-game-engine"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/nekzabirov/IGaming-Game-Engine","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nekzabirov%2FIGaming-Game-Engine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nekzabirov%2FIGaming-Game-Engine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nekzabirov%2FIGaming-Game-Engine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nekzabirov%2FIGaming-Game-Engine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nekzabirov","download_url":"https://codeload.github.com/nekzabirov/IGaming-Game-Engine/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nekzabirov%2FIGaming-Game-Engine/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33629560,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-28T02:00:06.440Z","response_time":99,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["casino","casino-games","casino-gaming-platforms","cqrs","domain-driven-design","event-driven","gambling","grpc","hexagonal-architecture","igaming","igaming-software","kotlin","ktor","microservice","onegamehub","pateplay","pragmatic-play","rabbitmq","slots","turnkey-casino-solutions"],"created_at":"2026-05-24T22:00:29.911Z","updated_at":"2026-05-28T23:01:34.312Z","avatar_url":"https://github.com/nekzabirov.png","language":"Kotlin","funding_links":[],"categories":["Ktor Projects","Examples"],"sub_categories":["Socials"],"readme":"\u003cdiv align=\"center\"\u003e\n\n# Casino Engine\n\n**Open-source game aggregator core for iGaming platforms.**\n\nThe game-mechanics engine powering casinos on [1638.cloud](https://1638.cloud) —\nreleased under Apache 2.0 so any operator can audit, fork, or drop it into\ntheir existing stack.\n\n[![License: Apache 2.0](https://img.shields.io/badge/License-Apache_2.0-D4AF37.svg)](https://www.apache.org/licenses/LICENSE-2.0)\n[![Kotlin](https://img.shields.io/badge/Kotlin-2.0.21-7F52FF.svg)](https://kotlinlang.org)\n[![JVM](https://img.shields.io/badge/JVM-21-0A2818.svg)](https://openjdk.org)\n[![Built in Malta](https://img.shields.io/badge/Built%20in-Malta-D4AF37.svg)](https://1638.cloud)\n\n[Website](https://1638.cloud) · [Live on moonbet.casino](https://moonbet.casino) · [Live on 2k.ua](https://2k.ua) · [Report an issue](https://github.com/nekzabirov/IGaming-Game-Engine/issues/new/choose)\n\n\u003c/div\u003e\n\n---\n\n## What this is\n\nCasino Engine is a production-grade Kotlin microservice that handles the\n**game side of an iGaming platform**: provider/aggregator integrations,\nsession orchestration, betting logic, freespin mechanics, and round\nlifecycle. It runs in production on [moonbet.casino](https://moonbet.casino)\nand [2k.ua](https://2k.ua).\n\nIt's the **only open-source module** of the [1638.cloud](https://1638.cloud)\nplatform — the other seven engines (PAM, Wallet, Payment, Risk, Engagement,\nIntelligence, CMS) are proprietary. Operators can use Casino Engine standalone\nthrough custom adapters, or run it as part of the full 1638.cloud white-label\nplatform.\n\n\u003e **Why open-source?** Operators deserve to see the code that handles their\n\u003e money flow. Aggregator integrations should be auditable. Game session logic\n\u003e should not be a black box. Every line is on GitHub.\n\n---\n\n## Who this is for\n\n| You are... | What this gives you |\n| --- | --- |\n| **A casino operator** running your own platform | A production-grade aggregator integration layer you can drop into your stack. No vendor lock-in, no rev share, no licence fees. |\n| **A platform engineer** evaluating iGaming infrastructure | A reference implementation of session, bet, round, and freespin mechanics in Kotlin/Ktor with hexagonal architecture. |\n| **A startup** thinking about launching a casino | A way to validate the technical model before committing. When you're ready to go live, [1638.cloud](https://1638.cloud) handles the licence, payments, KYC, and the rest. |\n\n---\n\n## Features\n\n- **Aggregator integrations** — Pragmatic Play, OneGameHub, Pateplay, with a\n  documented pattern for adding more\n- **Full betting lifecycle** — PLACE, SETTLE, ROLLBACK with idempotency\n  guarantees\n- **Freespin mechanics** — preset retrieval, creation, cancellation\n- **Round management** — first-bet creation, multi-bet round reuse via\n  external ID, finish lifecycle\n- **Event-driven** — RabbitMQ publisher for session, spin, round, and game\n  events\n- **Hexagonal architecture** — clean separation of domain, application,\n  infrastructure\n- **gRPC API** — `game.v1` protocol with 5 services and published client JAR\n- **Pluggable adapters** — Wallet, PlayerLimit, File, Currency, Event ports\n  you implement for your stack\n- **Production-tested** — runs on moonbet.casino and 2k.ua\n\n---\n\n## Quick start\n\n```bash\n# 1. Clone\ngit clone https://github.com/nekzabirov/IGaming-Game-Engine.git\ncd IGaming-Game-Engine\n\n# 2. Start infrastructure\ndocker-compose up -d postgres rabbitmq redis minio minio-init\n\n# 3. Configure\ncp .env.example .env\n\n# 4. Run\n./gradlew run                  # HTTP :8080, gRPC :5050\n```\n\nFull setup, integration guides, and operations docs are in [`docs/`](./docs) — see the [Documentation](#documentation) section below.\n\n---\n\n## Tech stack\n\n| Component | Choice |\n| --- | --- |\n| Language | Kotlin 2.0.21 on JVM 21 |\n| HTTP server | Ktor 3.0 (CIO) |\n| RPC | gRPC + Protobuf |\n| Database | PostgreSQL via Exposed ORM |\n| Messaging | RabbitMQ |\n| Cache | Redis (Lettuce) |\n| Object storage | S3-compatible (MinIO local) |\n| DI | Koin |\n| Build | Gradle (Kotlin DSL) |\n\nArchitecture: hexagonal (ports \u0026 adapters) with CQRS.\n\n---\n\n## Documentation\n\nTechnical documentation lives under [`docs/`](./docs):\n\n- [Architecture](./docs/ARCHITECTURE.md) — system design, layers, source structure, event flow\n- [Integrations](./docs/INTEGRATIONS.md) — supported aggregators and how to add a new one\n- [Adapters](./docs/ADAPTERS.md) — required adapters (Wallet, PlayerLimit, File, Event, Currency) you implement for production\n- [API](./docs/API.md) — gRPC API reference (`game.v1` package)\n- [Configuration](./docs/CONFIGURATION.md) — environment variables and infrastructure\n- [Errors](./docs/ERRORS.md) — domain exception hierarchy and gRPC status mapping\n\n---\n\n## The bigger picture — 1638.cloud platform\n\nCasino Engine is one of eight engines that make up the\n[1638.cloud](https://1638.cloud) iGaming platform:\n\n| # | Engine | Status |\n| --- | --- | --- |\n| 01 | **Casino Engine** — game mechanics, provider integrations | **Open-source** (this repo) |\n| 02 | PAM Engine — player accounts, KYC, lifecycle | Proprietary |\n| 03 | Wallet Engine — multi-currency, real-time balance | Proprietary |\n| 04 | Payment Engine — 76+ providers, fiat \u0026 crypto | Proprietary |\n| 05 | Risk Engine — anti-fraud, AML, behavioural scoring | Proprietary |\n| 06 | Engagement Engine — bonuses, tournaments, loyalty | Proprietary |\n| 07 | Intelligence Engine — segmentation, churn, LTV | Proprietary |\n| 08 | CMS Engine — content, theming, localisation | Proprietary |\n\nOperators can use the full stack as a white-label or turnkey deployment\nunder our [Anjouan](https://1638.cloud) master licence, or drop individual\nengines into their existing platform. Casino Engine works in both modes.\n\n**Go-live from contract:** 7 days. **Setup:** from €0 with Founders Circle.\nSee [1638.cloud](https://1638.cloud) for full terms.\n\n---\n\n## Want to use this in production?\n\nYou have three paths:\n\n**1. Run it yourself (free, Apache 2.0).**\nImplement the adapters, host the infrastructure, integrate with your own\nwallet and player systems. The code is yours. We don't charge, we don't\naudit, we don't gatekeep.\n\n**2. Use Casino Engine on the 1638.cloud platform.**\nDrop into our managed stack — we run the infrastructure, you keep the\nflexibility. Useful when you want the open-source engine but not the ops\nburden.\n\n**3. Full white-label on 1638.cloud.**\nCasino Engine plus the other seven engines, plus our Anjouan master\nlicence. Live in 7 days. From €0 setup. Contact\n[customer@1638.cloud](mailto:customer@1638.cloud).\n\n---\n\n## Contributing\n\nIssues, discussions, and pull requests are welcome. Before contributing,\nplease read [`CONTRIBUTING.md`](./CONTRIBUTING.md).\n\nWe're especially interested in:\n- New aggregator integration adapters\n- Bug reports from production deployments\n- Performance benchmarks and profiling reports\n- Documentation improvements\n\n---\n\n## Security\n\nThis is financial infrastructure. If you find a security issue, **do not\nopen a public issue** — see [`SECURITY.md`](./SECURITY.md) for responsible\ndisclosure.\n\n---\n\n## Licence\n\nApache 2.0 — see [`LICENSE`](./LICENSE).\n\nYou can use Casino Engine commercially, modify it, distribute it, and run\nit on any operator platform without paying royalties to 1638.cloud. The\nonly requirements are attribution and not using the 1638.cloud trademarks\nwithout permission.\n\n---\n\n## About 1638.cloud\n\n[1638.cloud](https://1638.cloud) is a B2B iGaming platform built in Malta.\nWe provide white-label and turnkey casino infrastructure under our Anjouan\nmaster licence. We open-source the Casino Engine because game mechanics\nshould not be a black box — and because the best way to earn an operator's\ntrust is to let them read the code first.\n\n**Founder:** [Nekbakht Zabirov](https://github.com/nekzabirov)\n**Email:** [customer@1638.cloud](mailto:customer@1638.cloud)\n**Web:** [1638.cloud](https://1638.cloud)\n\n\u003cdiv align=\"center\"\u003e\n\n— Built for operators who move first —\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnekzabirov%2FIGaming-Game-Engine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnekzabirov%2FIGaming-Game-Engine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnekzabirov%2FIGaming-Game-Engine/lists"}