We try to keep the rules the same everywhere. Applications identify themselves with a key. Players get signed tokens
that we check against their live session on every call. Back- office users only see the brands and players they're allowed
to see. Module APIs aren't exposed to the internet at all. ROK INTIHAR VP Technology Comtrade Gaming
versioning and backwards compatibility while still allowing the technology to move forward?
We had to learn this lesson the hard way. We had a client with many different teams integrating to our system. One requested a quick change, another hadn't time to adapt. Te plan was to have one big bang release all together, so when the second team didn't finish we were under pressure from both teams. One to push the release, another to postpone. But this was a valuable lesson that helped us include versioning thinking everywhere. It was at the beginning, when we had one main customer view. Now we can handle multiple different customers on the same code.
In practice, our player API carries the version in the URL of every endpoint, and old and new versions run side by side. A change that would break existing clients goes into a new version, and the old one stays as it is until the client is ready to move. Adding fields or new endpoints happens in the current version, because that doesn't break anyone. Our own back-office front end is generated from the same API contracts, so we'd feel a breaking change before any operator did.
And, my opinion, we also skip the versioning hell, as we are pushing customers to the same version. And they accept that because they don't notice problems or have any extra work.
Does giving operators greater control over their technology choices create a new challenge around complexity? At what point does flexibility risk producing a fragmented stack that becomes harder to maintain and operate?
It can. In the early years, when we still built mostly around one main customer, customer-specific work slowly made every release heavier, and that's part of why we're strict about it today. Operator-specific behavior goes into defined extension points, such as customer layers in the gateway or installable AddOns, and never into a fork of the core.
86
What I look at is whether an operator can take our next release without a project around it. Every component someone adds also needs monitoring and an owner.
What role do documentation, developer portals, sandbox environments and testing tools play in an API-first model? How important is the developer experience when operators or third parties are building directly against your platform?
Simulators are actually part of almost every project. It is better now, but when we started years ago, getting an integrator's test system was time consuming. We couldn't wait with implementation and testing, so we had to build them. Or I could say they saved a lot of our projects, if not most.
Beyond that, we publish OpenAPI contracts for our APIs, there's an integration guide for the player API, and the provider APIs come with Postman collections. When a client's portal team took over front-end development, we also gave them an AI agent that knows our API, so they could get answers without waiting for our engineers. Every operator has QA environments, and we load-test each release against that operator's traffic profile. Where we want to improve is self- service. Today a new partner still needs some contact with our team to get started, and we'd like them to be able to get a sandbox and make their first calls on their own.
As more functionality is exposed through APIs, how do you manage security, authentication, permissions and data access without creating friction for operators and their technology partners?
We try to keep the rules the same everywhere. Applications identify themselves with a key. Players get signed tokens that we check against their live session on every call. Back-office users only see the brands and players they're allowed to see. Module APIs aren't exposed to the internet at all.
Page 1 |
Page 2 |
Page 3 |
Page 4 |
Page 5 |
Page 6 |
Page 7 |
Page 8 |
Page 9 |
Page 10 |
Page 11 |
Page 12 |
Page 13 |
Page 14 |
Page 15 |
Page 16 |
Page 17 |
Page 18 |
Page 19 |
Page 20 |
Page 21 |
Page 22 |
Page 23 |
Page 24 |
Page 25 |
Page 26 |
Page 27 |
Page 28 |
Page 29 |
Page 30 |
Page 31 |
Page 32 |
Page 33 |
Page 34 |
Page 35 |
Page 36 |
Page 37 |
Page 38 |
Page 39 |
Page 40 |
Page 41 |
Page 42 |
Page 43 |
Page 44 |
Page 45 |
Page 46 |
Page 47 |
Page 48 |
Page 49 |
Page 50 |
Page 51 |
Page 52 |
Page 53 |
Page 54 |
Page 55 |
Page 56 |
Page 57 |
Page 58 |
Page 59 |
Page 60 |
Page 61 |
Page 62 |
Page 63 |
Page 64 |
Page 65 |
Page 66 |
Page 67 |
Page 68 |
Page 69 |
Page 70 |
Page 71 |
Page 72 |
Page 73 |
Page 74 |
Page 75 |
Page 76 |
Page 77 |
Page 78 |
Page 79 |
Page 80 |
Page 81 |
Page 82 |
Page 83 |
Page 84 |
Page 85 |
Page 86 |
Page 87 |
Page 88 |
Page 89 |
Page 90 |
Page 91 |
Page 92 |
Page 93 |
Page 94 |
Page 95 |
Page 96 |
Page 97 |
Page 98 |
Page 99 |
Page 100 |
Page 101 |
Page 102 |
Page 103 |
Page 104 |
Page 105 |
Page 106 |
Page 107 |
Page 108 |
Page 109 |
Page 110 |
Page 111 |
Page 112 |
Page 113 |
Page 114 |
Page 115 |
Page 116 |
Page 117 |
Page 118 |
Page 119 |
Page 120 |
Page 121 |
Page 122 |
Page 123 |
Page 124 |
Page 125 |
Page 126 |
Page 127 |
Page 128 |
Page 129 |
Page 130 |
Page 131 |
Page 132 |
Page 133 |
Page 134 |
Page 135 |
Page 136 |
Page 137 |
Page 138 |
Page 139 |
Page 140 |
Page 141 |
Page 142 |
Page 143 |
Page 144 |
Page 145 |
Page 146 |
Page 147 |
Page 148 |
Page 149 |
Page 150 |
Page 151 |
Page 152 |
Page 153 |
Page 154 |
Page 155 |
Page 156 |
Page 157 |
Page 158 |
Page 159 |
Page 160 |
Page 161 |
Page 162 |
Page 163 |
Page 164 |
Page 165 |
Page 166 |
Page 167 |
Page 168 |
Page 169 |
Page 170 |
Page 171 |
Page 172 |
Page 173 |
Page 174 |
Page 175 |
Page 176 |
Page 177 |
Page 178 |
Page 179 |
Page 180 |
Page 181 |
Page 182 |
Page 183 |
Page 184 |
Page 185 |
Page 186 |
Page 187 |
Page 188 |
Page 189 |
Page 190 |
Page 191 |
Page 192 |
Page 193 |
Page 194 |
Page 195 |
Page 196 |
Page 197 |
Page 198 |
Page 199 |
Page 200 |
Page 201 |
Page 202 |
Page 203 |
Page 204 |
Page 205 |
Page 206 |
Page 207 |
Page 208 |
Page 209 |
Page 210 |
Page 211 |
Page 212 |
Page 213 |
Page 214 |
Page 215 |
Page 216 |
Page 217 |
Page 218 |
Page 219 |
Page 220 |
Page 221 |
Page 222