About Seats.io
Seats.io is a seating chart maker that allows ticket sellers to simply draw and edit interactive floor plans, that can be integrated into booking and ticketing software. Favoured as the best reserved seating solution by numerous events managers and ticketing SaaS companies, it provides endless possibilities for drawing interactive floor maps.
Built as an event management software (EMS), it helps save expensive development hours and wows the end users with seamless ticket purchasing experience across all devices.
Seats.io Use Case
Realtime seat updates deliver superior ticket buyers experience
Seats.io makes it easy to keep track of which seats are booked or available by allowing ticket organizers to create events for each floor plan. Using realtime updates, the floor plan views stay in sync by making seats unavailable for selection almost simultaneously as soon as they get booked.
This allows the ticket organizers to avoid double bookings by sending seat availability changes to seats.io using an API call, which is then pushed out using realtime updates to all the ticket buyers that have the floor plan open on every device.
The platform allows for a flexible and easy controllable floor plans that can be easily controlled using a REST API. The ticket organizers are able to decide when to switch seats on and off, while ensuring for realtime availability changes for everyone looking at the floor plan.
Seats.io challenges
Initially, the engineering team at Seats.io started out by building an in-house solution and quickly faced the pain of maintaining a data streaming infrastructure. Every floor plan chart was polling their servers every second to request seats that were just booked. This led to an enormous load on their systems and also came with delays in updating the available seats for each floor plan.
Following a second attempt of opening a WebSocket connection between the browser and their servers, the team quickly realized that it’s very hard to make WebSockets work through a load balancer.
The Ably Solution
Scalable realtime updates combined with reliability and speed
After experiencing issues to maintain an in-house realtime solution, the engineering team decided to look for an external realtime infrastructure that can help deliver scalable live seat updates for both ticket buyers and organizers, while ensuring speed and reliable data delivery.
One of the main criteria was the ability to manage spikes in traffic by choosing a realtime infrastructure that can handle large loads of live updates for large events.
Using Ably’s client libraries available cross-platforms and the pay as you go model, the team is now able to have flexibility in terms of realtime usage while implementing a Pub/Sub messaging solution that can easily scale as the company grows.
As many visitors buy tickets through mobile devices the connections can get lost due to changing network conditions. One of the unique features of Ably is the connection state recovery that provides message continuity for the ticket buyers when their devices become disconnected up to 2 minutes.
Milestones at-a-glance
Seats.io relies on Ably for
-
Pub/Sub Messaging
Using channels devices can broadcast out realtime updates to any number of subscribers.
-
Consistent client libraries on every platform
Simplify development with our API consistent libraries on every popular platform.
-
Mobile Push Notifications
Alert users with a native OS notification even when they are not using your app.
-
Connection state recovery
When devices lose their connection, they don't need to lose message continuity and data integrity.
-
Token-based access control
Channel access control is managed by tokens you issue, so your chats are private and secure.
-
Device and user presence status
Be notified when users and devices go online or offline.
-
Guaranteed delivery and ordering
Uniquely we guarantee all recipients receive messages 100% of the time. Build chat you can rely on.
-
Smart message routing
We ensure data transferred between devices is always routed using the most efficient path, which means it's fast.