Media, games and real time
Real time without a queue, a fair rate.
SSE and WebSocket streams relayed without holding, rate per caller and explicit refusals: a surge of audience does not bring the services down, and every player or reader keeps their share. It is the gateway of our tournament platform.
What Flexway decides, on your infrastructure
Who calls, what Flexway decides, what is called: each route is a use case of your sector. Dashed: what is coming.
Architecture for media and gaming: players, viewers and mobile apps go through Flexway, on your infrastructure. Flexway accepts accounts from several providers, relays SSE and WebSocket streams, publishes to the broker an event received over HTTP and holds each player's rate, in front of your game servers, live broadcast and Kafka. A player over its rate gets a 429. Coming: HTTP/3 for callers.
- Players
- The players: a rate per player protects your game servers, with Retry-After when the limit is reached.
- Viewers
- A broadcast's viewers: SSE or WebSocket streams relayed without holding back and drained cleanly on shutdown.
- Mobile apps
- Your users' mobile apps: their calls go through Flexway, under the same contract and identity as the web.
- HTTP/3 for callers
- Planned: Flexway will accept HTTP/3 on the callers' side (QUIC), in addition to the current versions.
- Multi-provider accounts
- Flexway checks who is calling (OIDC token, API key or client certificate) and reads the tenant from the identity; no valid identity: 401.
- Rate per player
- A token bucket per caller limits its rate; beyond it: 429 with Retry-After and the RateLimit headers.
- Event published from HTTP
- Flexway publishes on your broker, under an AsyncAPI contract and in a CloudEvents envelope, what it receives over HTTP.
- SSE, WebSocket streams
- Real-time streams (SSE, WebSocket) are relayed without holding back; identity and rate are checked when they open.
- Game servers
- Your game servers: protected by a rate per player.
- Live broadcast
- Your live broadcast: streams relayed without holding back to the viewers.
- Kafka
- Your Kafka cluster: Flexway publishes on it the events received over HTTP, under contract, in a CloudEvents envelope.
- Line: one route
- Interchange: shared decision
- Request
- Event
- Refusal
- Your infrastructure
- Planned
- HTTP/3 for callersplanned
- Multi-provider accountsseveral OIDC issuers
- Rate per playertoken bucket, Retry-After
- Event published from HTTP202, put on the broker
- SSE, WebSocket streamsunbuffered, drained on shutdown
1A viewer follows a match live
What Flexway decidesThe SSE or WebSocket stream is relayed as is; when a replica stops, it is drained.
What is protectedNo live cut during a deployment.
2A player publishes a game event
What Flexway decidesThe HTTP request becomes an event on the broker; the client gets a 202.
What is protectedYour game servers consume at their own pace.
3A client sends too many requests
What Flexway decidesThe token bucket applies per player; beyond it, a 429 with Retry-After.
What is protectedThroughput stays fair between players.
Players
The players: a rate per player protects your game servers, with Retry-After when the limit is reached.
Routes through here
Viewers
A broadcast's viewers: SSE or WebSocket streams relayed without holding back and drained cleanly on shutdown.
Routes through here
Mobile apps
Your users' mobile apps: their calls go through Flexway, under the same contract and identity as the web.
Routes through here
HTTP/3 for callers
Planned: Flexway will accept HTTP/3 on the callers' side (QUIC), in addition to the current versions.
- Catalogue features
- HTTP/3 on the caller side
Multi-provider accounts
Flexway checks who is calling (OIDC token, API key or client certificate) and reads the tenant from the identity; no valid identity: 401.
- Decision
- several OIDC issuers
- Catalogue features
- iss and aud checked; several issuers in one configuration ; JWT validation, cached JWKS keys with rotation
Routes through here
Rate per player
A token bucket per caller limits its rate; beyond it: 429 with Retry-After and the RateLimit headers.
- Decision
- token bucket, Retry-After
- Catalogue features
- Rate per caller (token bucket) ; 429 with Retry-After and RateLimit headers
Routes through here
Event published from HTTP
Flexway publishes on your broker, under an AsyncAPI contract and in a CloudEvents envelope, what it receives over HTTP.
- Decision
- 202, put on the broker
- Catalogue features
- Mediation of the synchronous to asynchronous boundary ; Kafka publishing under contract, CloudEvents envelope
Routes through here
SSE, WebSocket streams
Real-time streams (SSE, WebSocket) are relayed without holding back; identity and rate are checked when they open.
- Decision
- unbuffered, drained on shutdown
- Catalogue features
- Streams relayed without holding: SSE and chunked bodies ; WebSocket relayed ; Graceful shutdown: streams in flight are drained
Routes through here
Game servers
Your game servers: protected by a rate per player.
Routes through here
Live broadcast
Your live broadcast: streams relayed without holding back to the viewers.
Routes through here
Kafka
Your Kafka cluster: Flexway publishes on it the events received over HTTP, under contract, in a CloudEvents envelope.
- Catalogue features
- Kafka publishing under contract, CloudEvents envelope
Routes through here
What the sector requires
- BroadcastStreams without holding
- SSE and WebSocket relayed as they are; when a replica stops, streams in flight are drained.
- FairnessA fair rate per player
- Token bucket per caller; beyond it, a 429 with Retry-After rather than an endless queue.
- AccountsAccounts from several providers
- Several OIDC issuers at once, signing keys cached with rotation.
- Game eventsEvents published from HTTP
- A client publishes an event over HTTP; the gateway puts it on the broker and answers 202.
How Flexway answers
Streams without holding
- Streams relayed without holding: SSE and chunked bodiesDelivered · v0.1.0
- WebSocket relayedDelivered · v0.1.0
- Graceful shutdown: streams in flight are drainedDelivered · v0.1.0
A fair rate per player
- Rate per caller (token bucket)Delivered · v0.1.0
- 429 with Retry-After and RateLimit headersDelivered · v0.1.0
Accounts from several providers
- iss and aud checked; several issuers in one configurationDelivered · v0.1.0
- JWT validation, cached JWKS keys with rotationDelivered · v0.1.0
Events published from HTTP
- Mediation of the synchronous to asynchronous boundaryDelivered · v1.5.0
- Kafka publishing under contract, CloudEvents envelopeDelivered · v1.5.0
State in Flexway's latest published release; a feature is marked delivered only with its release.
What Flexway does not do
- Flexway relays streams, it does not produce them: video delivery and encoding stay outside its scope.
Let's talk about your gateway
Flexwiz is a young company: you talk directly with the person who founds it. Tell us what you want to run through Flexway. We talk about your infrastructure and your digital sovereignty requirements.
Online booking is coming soon; until then, an e-mail is enough.