Ortem Technologies

    Eatigo Restaurant Reservation Platform — 7,000+ Partners Across 6 Asian Markets

    Built the full mobile platform for Eatigo — Asia's largest restaurant reservation platform with time-based discounting. 7,000+ restaurant partners, 6 Asian markets (Thailand, Singapore, Malaysia, Philippines, Hong Kong, India), millions of diners served. Real-time table availability, custom yield management pricing engine, multi-market POS integration, Redis-backed concurrency handling for peak booking surges.

    Client

    Eatigo

    Project Value

    $250,000+

    Rating

    5.0/5.0
    Eatigo Restaurant Reservation Platform — 7,000+ Partners Across 6 Asian Markets

    The Challenge

    Eatigo's business model was genuinely novel: fill restaurant empty seats during off-peak hours by offering time-based discounts (up to 50% off for early 6pm bookings, declining to 10% for peak 8pm slots). This created a technical problem that no off-the-shelf reservation system could solve. The platform needed a custom yield management engine — one that could compute and display dynamic discount tiers per time slot across 7,000+ restaurant partners in real time. On top of this, Eatigo was launching simultaneously across 6 Asian markets with different languages, currencies, regulatory requirements, and restaurant POS systems — ranging from modern cloud POS in Singapore to legacy systems in older Thai and Philippine restaurant chains. High concurrency was a hard constraint: the dinner rush means hundreds of simultaneous bookings across the same restaurants at the same time, so table inventory had to be managed with Redis-backed locking to prevent double-bookings under load.

    The Goal

    Build a multi-market restaurant booking platform with a custom time-based dynamic pricing engine, real-time table availability management, POS integration adapters for 6 Asian markets, Redis-backed concurrency handling for peak booking periods, and market-specific localisation (language, currency, payment gateway, regulatory compliance) — all within a single unified codebase.

    Solution & Implementation

    1Analysis

    Spent four weeks in market discovery across Bangkok, Singapore, Manila, and Hong Kong — mapping dining behaviour, peak/off-peak patterns by market, POS system landscape per country, and discount sensitivity by diner segment. Identified that the pricing engine was the core technical differentiator: it needed to compute the correct discount percentage for each time slot based on a restaurant's own yield rules, enforce booking caps per slot to prevent overselling, and update availability in real time as bookings completed. POS integration was the second major challenge: no single integration standard existed across the 6 markets — custom adapters were required for each major POS vendor.

    2Designing Solution

    Selected React Native for the consumer mobile app to share a codebase across iOS and Android across 6 markets. Built a Python/Django backend on AWS multi-region (ap-southeast-1 Singapore as primary, ap-south-1 Mumbai for India) to minimise latency across all markets. Used Redis as the availability and pricing cache — every table-time-slot combination is tracked in Redis with a 5-second TTL on pre-reservation holds to prevent double-bookings during peak surges. PostgreSQL stores the canonical booking record after Redis hold confirmation. The pricing engine is a configurable rule set per restaurant: restaurants define their yield model (which hours are off-peak, which discount percentages apply, how many covers per slot), and the engine computes real-time discount displays for diners.

    3Customizing Business Logic

    Built market-specific localisation layers for all 6 markets: Thai Baht, Singapore Dollar, Philippine Peso, Hong Kong Dollar, Malaysian Ringgit, and Indian Rupee — with market-appropriate payment gateways per country (Omise in Thailand, Stripe in Singapore, PayMongo in Philippines). Built POS integration adapters for the major systems in each market — custom HTTP adapters for Thai chain POS systems, iKentoo integration for Singapore, and a generic webhook-based integration for restaurants running standalone booking systems. Each adapter translates the Eatigo reservation confirmation into the correct format for the destination POS system and sends a real-time table mark with party size and booking notes.

    4Scale & Optimize

    The peak concurrency problem — hundreds of bookings hitting the same restaurant at the same minute — was solved with a Redis-based distributed lock per restaurant-timeslot pair. When a diner initiates booking, a 90-second exclusive hold is placed in Redis. If the booking completes, the hold converts to a confirmed reservation in PostgreSQL. If it expires (diner abandons), the slot is released automatically. This eliminated the double-booking problem entirely without requiring database-level locking that would have created bottlenecks at scale. Load testing confirmed the system handled 500+ concurrent booking initiations with sub-300ms response times.

    Results & Impact

    7,000+

    Restaurant Partners

    6 Asian Countries

    Markets Served

    Millions

    Diners Served

    500+ simultaneous

    Peak Booking Concurrency

    4.5+ Stars

    App Store Rating

    Custom yield management pricing engine: computes real-time time-based discount tiers (up to 50% off) per restaurant per slot, configurable per partner's own yield rules

    Redis-backed distributed locking: 90-second exclusive holds per restaurant-timeslot eliminate double-bookings under 500+ concurrent booking surges

    POS integration adapters built for each of 6 markets — no single integration standard; custom adapters per major POS vendor in Thailand, Singapore, Philippines, Hong Kong, Malaysia, India

    AWS multi-region deployment: Singapore primary (ap-southeast-1) + Mumbai secondary (ap-south-1) — sub-100ms API response times across all 6 markets

    Market-specific localisation: 5 languages, 6 currencies, 4 payment gateways, and country-specific regulatory compliance in a single unified React Native codebase

    Booking flow designed to complete in under 30 seconds from restaurant selection to confirmed reservation — critical for the impulse dining decision use case

    Real-time table availability display: Redis TTL cache ensures diners never see a table marked available that has already been held by another user in the last 90 seconds

    Post-launch: 7,000+ restaurant partners onboarded across 6 markets, millions of diners served, 4.5+ App Store rating maintained across all market app store listings

    Key Technologies

    React Native (iOS/Android)Python/Django BackendPostgreSQLRedis (Availability Cache + Distributed Locking)AWS Multi-Region (ap-southeast-1 + ap-south-1)Dynamic Pricing EnginePOS Integration Adapters (6 markets)Omise / Stripe / PayMongo Payment GatewaysPush Notifications (FCM/APNs)Multi-language Localisation (5 languages)
    "Ortem Technologies built the core mobile platform that powers Eatigo's restaurant reservation service across Asia. Their ability to handle complex real-time systems and integrate with diverse restaurant technologies has been crucial to our growth to millions of diners."
    E

    Eatigo Group

    Eatigo

    Want similar results for your business?

    We build the same for teams like yours — fixed scope, fixed price, senior engineers only.

    Build Something Similar

    Technical Approach

    Eatigo's pricing engine is implemented as a configurable rule set stored per restaurant in the pricing_rules table. Each rule specifies: the day of week and time range, the discount percentage for that slot, and the cover capacity for that slot (maximum covers eligible for the discounted rate). The engine computes the displayed discount for each time slot by evaluating the applicable rule for the slot's start time on the booking date, then checking the remaining discounted capacity against existing confirmed bookings for that slot. This means the discount percentage displayed to diners is always the current correct rate — a diner attempting to book a slot that has exhausted its discounted capacity sees a reduced discount or full-price option, never a discount that cannot be honoured.

    The distributed lock implementation uses Redis SETEX with a 90-second TTL: when a diner initiates a booking for a specific restaurant-date-timeslot combination, a lock key is written to Redis with the diner's session ID. Any concurrent booking attempt for the same slot checks for an existing lock key — if one exists, the concurrent request returns a "slot currently being held" status, and the diner can select another slot or wait. When a booking is confirmed (payment captured), the Redis hold is replaced with a confirmed booking record in PostgreSQL and the lock key is deleted. If the diner abandons the booking before payment, the Redis key expires automatically after 90 seconds, releasing the slot without manual intervention. This approach handles 500+ concurrent booking attempts during the dinner rush with zero double-bookings and no database locking that would degrade API response times.

    POS integration adapters are implemented as stateless HTTP microservices: each adapter accepts a standardised Eatigo reservation confirmation payload and translates it into the format required by the destination POS system. iKentoo (Singapore) uses a webhook push model. Thai legacy POS systems use a polling model — the adapter maintains an outbound queue and the POS polls for new reservations on a 60-second interval. This adapter architecture isolates POS integration complexity from the core booking platform, enabling new POS integrations to be added without modifying the booking engine.

    Frequently Asked Questions

    About Ortem Technologies

    Ortem Technologies is a premier custom software, mobile app, and AI development company. We serve enterprise and startup clients across the USA, UK, Australia, Canada, and the Middle East. Our cross-industry expertise spans fintech, healthcare, and logistics, enabling us to deliver scalable, secure, and innovative digital solutions worldwide.

    Ready to Build Something Like This?

    We've built food & dining solutions like this for teams across the US, UK, and Middle East. Fixed scope. Fixed price. Senior engineers from day one.

    Free 30-minute scoping call — no commitment, no sales pitch.