Case study · media & entertainment

Two cinema chains: booking against seats that cannot be double-sold

Booking applications for Cinepolis Indonesia and Play Cinemas: showtimes, live seat inventory, payment and ticketing across iOS and Android. Built by PremitiveKey, delivered through KRS Infoserve.

FlutterReact NativePythonLiveAgent layers · acceptance testing
2
CINEMA CHAINS
2
MOBILE FRAMEWORKS SHIPPED
iOS + Android
BOTH STORES
Live
IN PRODUCTION
The challenge

A seat is a single physical thing. Two people can want it in the same second, and a chain sells a session out in the minutes after a big release opens. A booking platform that is almost right sells the same seat twice, and the customer finds out at the door.

Both applications had to hold inventory correctly under real load, across two chains, two mobile frameworks and more than one payment gateway.

What we built
  • Cinepolis Indonesia on Flutter, Play Cinemas on React Native: two shipped frameworks, so the choice on the next product is made on constraints rather than on habit.
  • Showtimes by city and cinema, seat selection held while payment completes, and a session released on timeout so an abandoned checkout never blocks a seat.
  • Payment then ticket, with Stripe and local Indonesian gateways across the two properties, and booking history per user.
  • One backend shared by app and web, hosted on Azure, with the mobile applications and the AI agent layers as PremitiveKey’s work.
  • AI agent layers above both platforms, built and in acceptance testing: interest-based film recommendation, city and genre demand prediction, and re-engagement offers to lapsed moviegoers. Orchestrated on LangGraph, where a loop, a retry or a branch is a modelled edge rather than control flow buried in a service.
The booking path

Held while paying, released on timeout

The correctness problem is the hold. Everything else is a screen.

Delivered through KRS Infoserve, who hold the client relationship, with client and KRS permission to present. The cloud environment is set up and run by another team; PremitiveKey’s work is the applications and the agent layers.

Building a consumer product under real load?

Sixty minutes on inventory, concurrency and the parts of the booking path that decide whether a customer trusts the app twice.

A 60-minute architecture review · no charge · the notes are yours either way