- iGaming
- igaming
- platform
- architecture
iGaming Platform Architecture: Decisions a Team Can Implement
Define financial authority, service boundaries and a safe transition before committing to a platform rebuild. A practical guide to commissioning architecture work.
An iGaming platform can have a neat diagram and still leave a basic question unanswered: which component can decide that a player has enough money to place a bet? If the wallet, game integration and bonus engine each hold a different answer, a new service boundary may make the problem harder to resolve.
Architecture work should give product and engineering leaders decisions they can implement, test and revisit. For a new platform, that means identifying the smallest coherent core. For an operating platform, it means finding a change that improves the product without abandoning existing transactions. This guide explains what to ask of an architecture engagement, which evidence is worth collecting and when a larger rebuild is an unnecessary commitment.
Start with a decision that matters to the product
Begin with the decision blocking progress. Examples include adding a brand without mixing player data, supporting a second payment provider, reducing the time needed to release a game integration, or replacing a wallet that cannot explain disputed balances. Each problem implies different boundaries and different evidence. A list of technologies does not establish which problem they solve.
Prepare a short decision brief with the following information:
- Outcome: the user or operator workflow that must improve, and how the team will recognize the improvement.
- Current behavior: a real transaction trace, incident, release dependency or support case that shows the constraint. Remove personal data and secrets before sharing it.
- Operating context: brands, currencies, provider contracts, traffic shape, team ownership and the controls agreed for the target markets.
- Constraints: systems that must remain, contracts that cannot change, migration windows and the people available to support the result.
- Decision deadline: what must be decided now, what can be tested first and which commitment depends on the answer.
Architecture can reveal missing controls and technical evidence; it cannot determine licensing or legal obligations from a diagram. The operator and qualified advisers establish those requirements, and the team translates approved requirements into implementable controls.
Draw boundaries around authority, not feature names
A useful boundary identifies who can change a business fact, how others learn about the change and who repairs an incomplete workflow. It need not be a separately deployed service. Start with a responsibility map rather than a box for every feature:
- Financial state: identify the authority for postings, spendable funds, reservations and their release. If bonus funds follow different rules, specify eligibility and consumption order instead of treating every balance as interchangeable.
- Game operations: retain provider, session and round references, and define how a debit, result, cancellation or correction relates to the financial record.
- Player restrictions: identify where verification, limits and account restrictions are enforced when a relevant action is requested. A cached profile is not automatically adequate for an authorization decision.
- Provider communication: isolate contract-specific identifiers and statuses, while assigning a clear owner to accepted operations whose final result is not yet known.
- Reporting and support: define which views are copies, how current they are and where a disputed fact can be verified. A reporting database should not become an accidental second wallet.
For services that do own separate data, Microsoft’s data guidance distinguishes private service data from shared tables. Our design question is narrower: which facts must be changed together, and which readers can tolerate a documented delay?
For example, assume an account has €100 available, no credit facility and no incoming funds. Two concurrent requests each try to reserve €70. The financial authority must prevent both reservations from succeeding under those assumptions; checking a displayed balance before separate writes is insufficient. The acceptance test should examine committed reservations and remaining availability, not just two successful API responses. This is an illustrative invariant, not a performance claim or a universal wallet model.
Choose a deployment shape the team can operate
A modular application can keep related financial changes inside a local transaction while enforcing boundaries in code. Separate services can allow independent releases or isolate a workload, but introduce network failure, contract evolution and distributed recovery. Neither choice becomes appropriate simply because a platform is described as scalable.
Evaluate a proposed extraction against concrete questions:
- Does the capability need an independent release cadence or capacity profile that the current deployment cannot reasonably provide?
- Can it own its data and expose a stable contract without every change requiring coordinated releases elsewhere?
- Can a named team monitor, deploy, secure and recover it, including outside normal working hours?
- What happens when it is unavailable, and can the remaining workflow behave safely rather than only return an error?
If the answers are weak, improve the module boundary and measure the current bottleneck first. A shared physical database server is a different decision from letting unrelated components write the same tables. Moving an application into containers does not resolve unclear write authority.
For multiple operators or brands, also document the isolation model. Authentication establishes identity; it does not establish permission over every player record. OWASP’s object authorization guidance requires checking the requested action against the requested object. Carry verified operator context through queries, background jobs, caches and administrative tools; do not trust an operator identifier supplied by the caller alone. Separate databases can strengthen an isolation design, but do not repair an incorrectly authorized API. Select the model against agreed isolation, recovery, residency and operational requirements.
Prove the design through a complete workflow
Choose one meaningful workflow and follow it through interfaces, state changes and operational recovery. A betting slice might begin with player eligibility, continue through reservation and provider acceptance, and end with settlement or a documented unresolved state. It should also show what support can inspect. A successful sandbox response proves much less than this complete path.
Where a committed local change must generate an event, avoid relying on two unrelated writes. The AWS transactional outbox pattern saves the change and publication intent together. Relaying that intent can still repeat a message. The design must therefore explain consumer duplicate handling and the recovery of work that has been received but not applied. When the consumer changes local financial state, persist its duplicate decision and that change atomically; a separate marker saved before the posting can hide lost work. An outbox is not an atomic transaction with a remote game or payment provider.
Use the slice to challenge the proposed boundaries:
- Terminate a worker after the business commit but before event publication. On restart, the committed change must remain discoverable and its publication recoverable.
- Deliver the same business operation concurrently. Inspect the financial effect and duplicate record together, rather than assuming that a message identifier alone prevents a second posting.
- Delay the reporting projection. Show how staff distinguish a stale view from authoritative transaction state without making a financial correction from the stale view.
- Change an operator or player identifier in an otherwise valid request. Check that authorization still denies access to the unrelated record.
Agree measurement conditions before discussing latency or capacity: workflow boundary, concurrency, provider delay, data volume and the failures included. Measure unfinished business work as well as HTTP success. A dashboard with fast responses can hide reservations that never settle. Keep test evidence and unresolved assumptions alongside the architecture decision.
Move responsibility without creating competing financial truths
An existing platform needs a transition architecture, not only a final-state diagram. List current writers, historical records, open rounds, pending payouts, queued events and callbacks that may arrive after a deployment. Identify which component remains responsible for each accepted operation while the system changes.
The Strangler Fig pattern describes incremental replacement through routing. It also introduces a temporary dependency on the routing layer. Apply it only where requests and ownership can be controlled; an opaque legacy system or an urgent full shutdown may require a different transition.
For a financial capability, agree a cutover protocol before enabling the new writer:
- Prepare: define the migration unit, such as an account or operator, its identity mapping, authoritative writer and a consistent baseline that includes pending reservations and obligations. Rehearse capture of changes made during the transfer, not just copying a static balance export.
- Compare: check record completeness, financial totals and references at a defined point in the change history. Shadow calculations may compare results but must not submit real bets, payments or duplicate postings.
- Transfer: enforce the agreed ownership change at the write boundary so the old and new components cannot both accept new writes for the same migrated unit; routing alone is insufficient. Separate ownership of a business operation from permission to write financial state. An old integration may still own a late callback, but its resulting posting must reach the designated financial authority through an agreed handoff. If that path is unavailable, drain the affected obligations before transferring their unit.
- Stabilize: reconcile exceptions, process late messages through their assigned owner and retain the evidence needed to explain historical transactions.
A routing rollback is not a reversal of completed financial activity. Once the new component has accepted work, returning traffic to the old one requires a way to preserve or synchronize that work and prevent simultaneous writers. If that cannot be demonstrated, define a controlled pause and forward recovery instead of calling a traffic switch a safe rollback. The stop conditions, recovery owner and legacy retirement criteria belong in the release plan.
Commission an architecture package the next team can use
Agree the engagement around decisions and evidence, with implementation as a separately explicit scope. An assessment may end with a recommendation to retain the current core, repair a boundary or run a targeted experiment. It should not automatically turn every uncertainty into a replacement project.
A useful handover includes:
- A current-state map: verified writers, consumers, dependencies and gaps, with the evidence used to identify them.
- Decision records: the problem, alternatives, chosen trade-off, consequences, owner and the condition that would justify revisiting the choice.
- A target workflow: contracts, state transitions, financial invariants, authorization boundaries and failure recovery, detailed enough for implementation.
- Acceptance evidence: what was actually demonstrated, under which conditions, and which assumptions remain untested. If no software was built, label proposed tests as proposed.
- A transition plan: increments, dependencies, cutover conditions, operational ownership and the route for accepted work during a change.
Review the package with the people who will implement and operate it. Can an engineer find the writer for a disputed balance? Can support locate an incomplete round? Can the release owner explain when to stop the migration? These questions expose missing decisions more reliably than the number of diagrams in a presentation.
Use platform capabilities to map the wider product scope, a discovery and architecture sprint when the first priority is resolving uncertainty, and platform modernization when the task is changing a live system. To discuss architecture work with SPINDO.TECH, share the decision and its constraints. Agree deliverables, access, participants and acceptance criteria before commissioning the next stage.
- Name the product decision, affected workflow and evidence needed to choose among alternatives.
- Identify the authority for each critical fact, the atomic changes it must enforce and the readers allowed to lag.
- Demonstrate a complete workflow with duplicate delivery, partial failure and authorization checks; record what remains untested.
- Assign transition ownership, cutover and stop conditions, and recovery for operations already accepted.
Can we commission a focused assessment before a rebuild?
Yes. Start with the blocked decision and the existing evidence. Agree the workflows, participants and access required for an assessment, then ask for alternatives and a recommended next step. A decision package or targeted experiment can be a useful outcome; implementation is a separate scope unless explicitly included.
Should an iGaming platform use microservices?
Use separate services when their independence solves an identified problem and the team can operate the resulting contracts and failure paths. A modular core may be more manageable when transactions are tightly related or ownership is still evolving. Compare release independence, consistency requirements, workload isolation and support capacity before deciding.
What evidence is needed before moving financial responsibility?
Identify the current and future writers, define the transfer unit, rehearse a consistent data baseline and subsequent changes, and reconcile records and financial totals. Demonstrate that both writers cannot accept the same new work, and that late events and existing obligations retain an owner. Define recovery after the new writer has already accepted operations.
How do we know an architecture engagement is complete?
Use the agreed decision and acceptance criteria. The team should receive the chosen trade-offs, implementable contracts, current-state evidence, proposed or completed tests clearly distinguished, remaining risks and a transition plan with named owners. Completion means the next team can act on the package; it does not mean all platform risks or legal requirements have been resolved.
Share the affected workflow, current systems, a sanitized example of the problem and the constraints on changing it. We can use that context to discuss a focused architecture assessment with SPINDO.TECH and agree the decisions, evidence and handover needed before a larger implementation commitment.
