Developer Resources

स्केलेबल बुकिंग सिस्टम दा निर्माण: कोर डाटाबेस मॉडल ते लचीला एपीआई पैटर्न

स्केलेबल बुकिंग सिस्टम आर्किटेक्चर आस्तै इक डेवलपर दी गाइड। कोर डेटाबेस स्कीमा डिजाइन, आइडेम्पोटेंट एपीआई पैटर्न, समवर्ती हैंडलिंग, ते व्यावहारिक कार्यान्वयन कदम सिक्खो।

2 min read

Mewayz Team

Editorial Team

Developer Resources

बुकिंग सिस्टम बनाने दा कम्म सौंपे गेदे हर डेवलपर गी जल्दी एहसास होंदा ऐ जे एह् इक धोखा देने आह्ली चुनौती ऐ। सतह उप्पर, एह् सिर्फ इक बरतूनी, इक संसाधन (जियां इक समें स्लाट जां इक सीट), ते इक समें गी जोड़ना ऐ। असल च, एह् डेटा अखंडता, रियल-टाइम समेकन, ते कारोबारी तर्क दा इक उच्च दांव आर्केस्ट्रेशन ऐ जेह् ड़ा लोड दे हेठ बेदाग प्रदर्शन करना होग। खराब डिजाइन प्रणाली कन्नै डबल बुकिंग, निराश ग्राहक, ते परिचालन बुरे सपने पैदा होंदे न। मेवेज़ जनेह् प्लेटफार्में पर 138K+ कारोबार आस्तै, इक मजबूत बुकिंग इंजन कोई लग्जरी नेईं ऐ; एह् सेवाएं, नियुक्तियें, ते संपत्ति प्रबंधन आस्तै परिचालन रीढ़ ऐ। एह् गाइड तुसेंगी इक सिस्टम बनाने लेई लोड़चदे जरूरी डेटाबेस डिजाइन ते एपीआई पैटर्न गी तोड़दा ऐ जेह् ड़ा तुंदी पैह् ली 100 बुकिंग थमां तुंदे पैह् ले मिलियन तगर स्केल करदा ऐ.

फाउंडेशनल डाटाबेस स्कीमा: सिर्फ तालिकाएं थमां मता

डेटाबेस तुंदी बुकिंग सिस्टम आस्तै सच्चाई दा इकमात्र स्रोत ऐ। इसदा डिजाइन हर इक चीज दा हुक्म दिंदा ऐ-क्वेरी प्रदर्शन थमां लेइयै तुंदे कारोबारी तर्क दी जटिलता तगर। इक गै बुकिंग्स तालिका आह् ला भोला तरीका असली दुनिया दी जरूरतें जि'यां बार-बार अपॉइंटमेंट, प्रतीक्षा सूची, जां संसाधन पदानुक्रमें दे अंतर्गत ढहग.

कोर इकाइयें गी स्पश्ट रूप कन्नै मॉडलिंग करियै शुरू करो। चिंताएं दा एह् बक्खरा होना लचीलापन आस्तै मता जरूरी ऐ। तुंदी संसाधन तालिका परिभाशत करदी ऐ जे केह् बुक कीता जाई सकदा ऐ- इक कांफ्रेंस रूम, इक स्टाइलिस्ट दा समां, इक किराये दी कार। हर संसाधन च उपलब्धता नियमें गी लिंक कीता जाना चाहिदा ऐ, जेह् ड़े सरल (9-से-5, सोमवार-शुक्रवार) जां जटिल (कस्टम घैंटे, ब्लैकआउट तारीखें, बुकिंग दे बश्कार बफर समें) होई सकदे न। संसाधन थमां गै बक्ख-बक्ख उपलब्धता गी संग्रहीत करने कन्नै गतिशील शेड्यूलिंग ते आसान अपडेट दी अनुमति दित्ती जंदी ऐ.

कोर इकाई रिश्ते

सिस्टम दा दिल उपयोगकर्ता, संसाधन, ते समय स्लॉट दे बश्कार जंक्शन ऐ. इक मजबूत बुकिंग्स तालिका गी सिर्फ इक शुरू ते समाप्त तारीख समें गी संग्रहीत नेईं करना चाहिदा. इस च 'पुष्टि' थमां परे मूल्यें आह् ला इक स्थिति फील्ड शामल होना चाहिदा ऐ-सोचो pending_payment, tentative, रद्द, no_show. इस कन्नै समृद्ध वर्कफ़्लो दी अनुमति दित्ती जंदी ऐ जि’यां इक स्लाट गी अस्थायी रूप कन्नै रखना जिसलै कोई बरतूनी चेकआउट पूरा करदा ऐ। इसदे अलावा, धोखाधड़ी दा पता लाने आस्तै source (वेब, मोबाइल, एपीआई), ip_address जनेह् मेटाडाटा शामल करो, ते आशावादी समवर्ती नियंत्रण आस्तै इक version नंबर जां updated_at टाइमस्टैम्प शामल करो, जिस पर अस बाद च चर्चा करगे.

समवर्तीता गी संभालना: दौड़ दी स्थिति दी समस्या

जदूं दो बरतूनी इक गै समें च आखरी उपलब्ध स्लाट बुक करने दी कोशश करदे न तां तुंदी दौड़ दी शर्त होंदी ऐ. भोला-भाला चेक-सिलेक्ट-इंसर्ट अनुक्रम डबल बुकिंग दा नुस्खा ऐ। इसगी रोकने लेई केईं लड़ाई-परीक्षित रणनीतियां न, हर इक च प्रदर्शन ते जटिलता दे बश्कार ट्रेड-ऑफ ऐ।

<उल>
  • निराशावादी लॉकिंग: इस च बुकिंग लेनदेन दी अवधि आस्तै संसाधन जां समें स्लाट पर पंक्ति-स्तरीय लॉक लाना शामल ऐ। एह् सरल ऐ ते अखंडता दी गारंटी दिंदा ऐ पर थ्रूपुट गी मती घट्ट करदा ऐ ते उच्च समेकितता दे अंतर्गत गतिरोध पैदा करी सकदा ऐ। एह् इ’यां ऐ जि’यां इक डाटाबेस पंक्ति पर “डनॉट डिस्टर्ब” चिह् न लाना ऐ।
  • आशावादी समवर्ती नियंत्रण (ओसीसी): वेब-स्केल एप्लीकेशनें लेई मता उपयुक्त। इत्थे, तुस पंक्तियां लॉक नेईं करदे। इसदे बजाय, तुस अपडेट करदे बेल्लै इक संस्करण नंबर जां टाइमस्टैम्प दी जांच करदे ओ. बुकिंग तदूं गै अग्गें बधदी ऐ जदूं तगर संसाधन दी स्थिति च कोई बदलाव नेईं आया होए जिसलै बरतूनी ने इसगी दिक्खेआ ऐ। जेकर कोई टकराव दा पता चलेआ ऐ तां बरतूनी गी सूचित कीता जंदा ऐ ते उसी दुबारा कोशश करना होग. एह् पैटर्न बेह् तर स्केल करने योग्य ऐ पर इसदे आस्तै सोचे-समझियै टकराव समाधान तर्क दी लोड़ ऐ ।
  • डेटाबेस-स्तर दी बाधाएं: सबनें शा मजबूत तरीका ऐ अपनी स्कीमा गी डिजाइन करना तां जे डबल बुकिंग भौतिक रूप कन्नै असंभव होऐ. resource_id, start_time, ते end_time (इक शर्त कन्नै जित्थै स्थिति != 'रद्द') दे संयोजन पर इक UNIQUE बाधा दा इस्तेमाल करने दा मतलब ऐ जे डेटाबेस अपने आपै च कुसै बी इन्सर्ट गी नकार देग जेह् ड़ा ओवरलैप पैदा करदा ऐ. इस कन्नै प्रवर्तन गी डेटाबेस इंजन च लेई जंदा ऐ, जेह् ड़ा इस च असाधारण रूप कन्नै माहिर ऐ.
  • दा ऐ

    आइडेम्पोटेंट ते लचीला एपीआई डिजाइन करना

    तुंदा एपीआई गेटवे ऐ। नेटवर्क विफलता, मोबाइल ऐप क्रैश, जां अधीर बरतूनी दो बारी "सबमिट" पर मारने दा मतलब ऐ जे तुंदी बुकिंग एंडपॉइंट गी इक गै चाल्लीं दी लोड़ होग-इक गै रिक्वेस्ट गी मते बारी करने दा उस्सै चाल्ली दा असर होंदा ऐ जिस्सै चाल्लीं इक बारी करने दा होंदा ऐ। एह् भुगतान कन्नै जुड़ी दी प्रक्रिया आस्तै गैर-बातचीत योग्य ऐ ।

    ग्राहकें गी हर बुकिंग बनाने दी रिक्वेस्ट कन्नै इक अनोखा idempotency_key (जियां, इक यूयूआईडी पैदा कीता गेदा ग्राहक-पक्ष) भेजने दी लोड़ करियै idempotency लागू करो. तुंदा एपीआई इस कुंजी गी नतीजे च बुकिंग दी आईडी कन्नै लिंक संग्रहीत करदा ऐ। उसी कुंजी कन्नै डुप्लिकेट रिक्वेस्ट पैह् ले थमां गै बनाई गेदी बुकिंग दा ब्यौरा वापस करदा ऐ, जिस कन्नै डुप्लिकेट शुल्क ते बुकिंग गी रोकेआ जंदा ऐ। एह् पैटर्न वित्तीय ते लेनदेन प्रणालियें दी भरोसेमंदता आस्तै केंद्रीय ऐ , जिंदे च Mewayz API मॉड्यूल बी शामल न, जेह् ड़े बिलिंग ते शेड्यूलिंग गी संभालदे न.

    स्केल करने योग्य बुकिंग एपीआई दी कुंजी सिर्फ गति नेईं ऐ; एह् पूर्वानुमान ऐ। साफ, लगातार त्रुटि कोडें कन्नै इक आइडेम्पोटेंट एंडपॉइंट दी कीमत मामूली रूप कन्नै तेज होने आह् ले थमां मती ऐ जेह् ड़ा असफलता दे हेठ डुप्लिकेट लेनदेन पैदा करदा ऐ.

    राज्य प्रबंधन ते जीवन चक्र हुक

    बुकिंग इक राज्य मशीन ऐ। एह् pending थमां confirmed थमां completed जां cancelled च चली जंदा ऐ. हर संक्रमण गी विशिश्ट कार्रवाईयें गी ट्रिगर करना चाहिदा-पुष्टि ईमेल भेजना, संसाधन कैलेंडर गी अपडेट करना, रिफंड गी प्रोसेस करना, जां आडिट ट्रेल लॉग करना। इसगी इक अच्छी तरह परिभाषित सेवा परत जां घटना-आधारत आर्किटेक्चर दा इस्तेमाल करियै लागू करो.

    उदाहरण दे तौर पर, जदूं कोई बुकिंग रद्द कीती जंदी ऐ तां तुंदी सेवा गी:

      दा
    1. रद्द करने दी नीति गी मान्य करो (जियां, "24 घैंटे दा नोटिस जरूरी")।
    2. bookings.status गी रद्द च अपडेट करो.
    3. एक booking.cancelled घटना उत्सर्जित करो.
    4. श्रोताएं गी आक्खो जे: भुगतान गेटवे दे राहें कुसै बी आंशिक वापसी गी प्रक्रिया करदे न, रद्द करने दा ईमेल भेजन, ते वैकल्पिक रूप कन्नै, प्रतीक्षा सूची च इक सूचना गी ट्रिगर करदे न.
    दा

    एह् डिकपल्ड डिजाइन, जिस चाल्ली मेवेज़ दा मॉड्यूलर ओएस किस चाल्ली कम्म करदा ऐ, सिस्टम गी विस्तार करने योग्य बनांदा ऐ. नमीं एसएमएस सूचना जोड़ना जां सीआरएम कन्नै इकट्ठा करना कोर बुकिंग तर्क गी छूने बगैर इक नमें इवेंट श्रोता गी जोड़ने दी गल्ल ऐ।

    स्केल पर प्रदर्शन आस्तै क्वेरी पैटर्न

    जियां-जियां तुंदी बुकिंग दी मात्रा बधदी जाह् ग, अकुशल क्वेरी तुंदे डैशबोर्ड ते रिपोर्टिंग गी क्रॉल च लेई औग। आम संचालन च "मई च संसाधन X आस्तै सारी बुकिंग ढूंढो" ते "मेरे गी कुसै बरतूनी दी आगामी अपॉइंटमेंट दस्सो" शामल न.

    इंडैक्सिंग रणनीति सर्वोपरि ऐ। (resource_id, start_time) ते (user_id, start_time) पर समग्र अनुक्रमणिका जरूरी न. बड्डे स्पैन गी कवर करने आह् ली तारीख-रेंज क्वेरी आस्तै, अपनी बुकिंग तालिका गी तारीख दे अनुसार (जियां, महीने दे अनुसार) विभाजन करने पर विचार करो. इस कन्नै डेटाबेस गी स्कैन थमां पूरे विभाजनें गी जल्दी बाहर कड्ढने दी इजाजत दित्ती जंदी ऐ. इसदे अलावा, SELECT * थमां बचो. अपनी क्वेरी च स्पश्ट होओ, मेमोरी ते नेटवर्क ओवरहेड गी घट्ट करने आस्तै विशिष्ट दृश्य जां ऑपरेशन आस्तै लोड़चदे स्तंभें गी गै लैओ.

    चरण-दर-चरण: इक मजबूत बुकिंग प्रवाह लागू करना

    आओ, चर्चा कीते गेदे सिद्धांतें गी शामल करदे होई, इक गै बुकिंग निर्माण आस्तै सर्वर-साइड तर्क दे माध्यम कन्नै चलचे.

    💡 DID YOU KNOW?

    Mewayz replaces 8+ business tools in one platform

    CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.

    Start Free →

    चरण 1: सत्यापन ते आइडेम्पोटेंसी जांच दी अनुरोध करो

    आने आह् ले पेलोड (उपयोगकर्ता_आईडी, संसाधन_आईडी, अनुरोधित समें स्लॉट) गी मान्य करो। तुरत कुसै समर्पित तालिका जां रेडिस कैशे दे खलाफ idempotency_key दी जांच करो. जेकर कोई मिलान मौजूद ऐ तां तुरत संग्रहीत प्रतिक्रिया वापस करो (एचटीटीपी 200 मौजूदा बुकिंग डेटा कन्नै ठीक ऐ)।

    चरण 2: उपलब्धता सत्यापन

    जांच करने लेई क्वेरी करो जे स्लॉट मुफ्त ऐ जां नेईं। इस च मौजूदा पुष्ट ते लंबित बुकिंगें दा लेखा-जोखा होना चाहिदा, ते कन्नै गै संसाधन दे उपलब्धता नियमें दा बी. जेकर होई सकै तां इक गै, परमाणु क्वेरी दा इस्तेमाल करो, डेटाबेस बाधाएं दा फायदा लैंदे होई. उदाहरण दे तौर पर: SELECT COUNT(*) FROM बुकिंग WHERE resource_id = ? AND tsrange (स्टार्ट_टाइम, एंड_टाइम) && tsrange(?, ?) AND स्थिति NOT IN ('रद्द कीता गेआ', 'कोई_शो').

    चरण 3: परमाणु लेनदेन

    निर्माण गी इक डेटाबेस लेनदेन च लपेटो. इसदे अंदर:
    1. उपलब्धता गी दुबारा सत्यापन करो (एक अंतिम जांच)।
    2. नमें बुकिंग रिकार्ड गी स्थिति pending_payment जां confirmed कन्नै सम्मिलित करो.
    3. सफल बुकिंग आईडी गी idempotency_key कन्नै जोड़ने आह् ला रिकार्ड दाखल करो.
    4. लेनदेन गी कमिट करो। जेकर कोई बी कदम असफल होई जंदा ऐ तां पूरा लेनदेन वापस रोल होई जंदा ऐ, जिस कन्नै कोई हाफ-स्टेट नेईं छोड़दा ऐ.

    चरण 4: सृष्टि दे बाद दी कार्रवाई

    लेनदेन सफल होने दे बाद, पर ग्राहक गी जवाब देने थमां पैह् ले, गैर-महत्वपूर्ण मार्ग कार्रवाईयें आस्तै एसिंक नौकरी जां घटनाएं गी फायर ऑफ करो: पुष्टिकरण ईमेल भेजना, खोज सूचकांक अपडेट करना, जां विश्लेषण लॉग करना. एपीआई प्रतिक्रिया गी इनें दा इंतजार नेईं करना चाहिदा.

    एक व्यापक बिजनेस ओएस कन्नै इकट्ठा करना

    वैक्यूम च बुकिंग सिस्टम शायद गै होंदा ऐ। इसदा असली मूल्य उसलै अनलॉक होंदा ऐ जिसलै होर कारोबारी फ़ंक्शनें कन्नै इकट्ठा कीता जंदा ऐ। जदूं बुकिंग बनाई जंदी ऐ तां संभावत रूप कन्नै: सीआरएम च संपर्क बनाना, चालान पैदा करना, एचआर मॉड्यूल च टीम दे सदस्य दे कैलेंडर गी ब्लॉक करना, जां बेड़े प्रबंधक थमां इक गड्डी शेड्यूल करना। एह् मेवेज़ जनेह् प्लेटफार्में दे पिच्छें मॉड्यूलर दर्शन ऐ, जित्थै बुकिंग मॉड्यूल स्वतः 207 होरनें कन्नै सिंक होंदा ऐ।

    डेवलपर्स आस्तै, इसदा मतलब ऐ जे इकीकरण बिंदुएं गी ध्यान च रक्खियै अपने बुकिंग सिस्टम दे डेटा मॉडल ते घटनाएं गी डिजाइन करना. कुंजी घटनाएं आस्तै वेबहुक गी उजागर करना (booking.created, booking.updated) होर सिस्टमें गी प्रतिक्रिया देने दी इजाजत दिंदा ऐ. मेवेज़ कन्नै $4.99/मॉड्यूल/महीने पर पेश कीते गेदे एपीआई दी तर्ज पर इक साफ, अच्छी तरह कन्नै दस्तावेज कीते गेदे एपीआई उपलब्ध करोआना, साझेदारें ते अंदरूनी टीमें गी स्वचालित फॉलो-अप एसएमएस अभियानें थमां लेइयै बाहरी लेखा सॉफ्टवेयर कन्नै सिंक करने तगर, कस्टम वर्कफ़्लो बनाने च सक्षम बनांदा ऐ।

    स्केल करने योग्य बुकिंग प्रणाली बनाना असफलता दी अपेक्षा करने ते स्थिरता आस्तै डिजाइन करने च इक कवायद ऐ। इक ठोस, बाधा-मजबूत डेटाबेस स्कीमा कन्नै शुरू करियै, आइडेम्पोटेंट एपीआई पैटर्न गी रोजगार देइयै, ते पैह् ले दिन थमां इकीकरण आस्तै योजना बनाइयै, तुस इक शेड्यूलिंग उपकरण थमां मता बनांदे ओ. तुस सेवा-आधारत संचालन आस्तै इक भरोसेमंद, केंद्रीय नर्वस सिस्टम बनांदे ओ जेह् ड़ा कारोबार कन्नै निर्बाध रूप कन्नै बधी सकदा ऐ, जटिल रसद गी प्रतिस्पर्धी फायदे च बदली सकदा ऐ।

    बार-बार पुच्छे जाने आह् ले सवाल

    डबल बुकिंग गी रोकने लेई केह् ड़ी मती जरूरी डेटाबेस बाधा ऐ ?

    resource_id, start_time, ते end_time (सक्रिय स्थिति आस्तै फ़िल्टर कीता गेदा) दे संयोजन पर इक UNIQUE बाधा सारें शा मजबूत ऐ, की जे एह् डेटाबेस इंजन स्तर पर ओवरलैपिंग बुकिंग गी रोकदी ऐ, जेह् ड़ी परमाणु ते भरोसेमंद ऐ.

    बुकिंग एपीआई आस्तै इक आइडेम्पोटेंसी कुंजी कीऽ जरूरी ऐ ?

    इक आईडीएम्पोटेंसी कुंजी इस गल्लै गी सुनिश्चत करदी ऐ जे जेकर कोई ग्राहक असफल रिक्वेस्ट गी दुबारा कोशश करदा ऐ (जियां, नेटवर्क टाइमआउट दे कारण), तां ओह् सिर्फ इक बुकिंग पैदा करदा ऐ ते बरतूनी थमां इक बारी चार्ज करदा ऐ, डुप्लिकेटें गी रोकदा ऐ ते भुगतान प्रक्रिया च बरतूनी दा भरोसा पैदा करदा ऐ.

    क्या मिगी समवर्ती नियंत्रण आस्तै आशावादी जां निराशावादी लॉकिंग दा इस्तेमाल करना चाहिदा ?

    अधिकांश वेब-आधारत बुकिंग प्रणाली आस्तै, स्केलेबिलिटी आस्तै आशावादी समवर्ती नियंत्रण (ओसीसी) गी पसंद कीता जंदा ऐ। निराशावादी लॉकिंग बड़ी घट्ट-समवर्ती परिदृश्यें आस्तै सरल होई सकदी ऐ पर अक्सर बरतूनी दी मात्रा बधने कन्नै गै इक अड़चन बनी जंदी ऐ।

    बुकिंग सिस्टम च समें क्षेत्रें गी किस चाल्ली संभालना चाहिदा ?

    सभनें टाइमस्टैम्पें गी हमेशा अपने डेटाबेस च समन्वयित सार्वभौमिक समें (UTC) च संग्रहीत करो. भरोसेमंद समें क्षेत्र लाइब्रेरी दा इस्तेमाल करदे होई, सिर्फ एप्लिकेशन दी प्रेजेंटेशन लेयर पर बरतूनी जां संसाधन दे स् थानीय समें क्षेत्र च ते उस थमां बदलो.

    जीवन चक्र प्रबंधन दी बुकिंग आस्तै इक इवेंट-ड्राइव आर्किटेक्चर दा केह् फायदा ऐ ?

    इवेंट-ड्राइव आर्किटेक्चर कोर बुकिंग लॉजिक गी सूचनाएं ते इंटीग्रेशन जनेह् दुष्प्रभावें थमां डिकपल करदा ऐ, जिस कन्नै सिस्टम गी गैर-महत्वपूर्ण प्रक्रियाएं च विफलताएं आस्तै मता रखरखाव करने योग्य, विस्तार करने योग्य ते लचीला बनांदा ऐ.

    अज्ज अपना बिजनेस ओएस बनाओ

    फ्रीलांसर थमां लेइयै एजेंसियें तगर, मेवेज़ 208 इंटीग्रेटेड मॉड्यूल कन्नै 138,000+ कारोबारें गी शक्ति दिंदा ऐ. मुफ्त शुरू करो, जदूं तुस बधदे ओ तां अपग्रेड करो।

    मुफ्त खाता बनाओ →
    दा

    Try Mewayz Free

    All-in-one platform for CRM, invoicing, projects, HR & more. No credit card required.

    Related Guide

    Booking & Scheduling Guide →

    Streamline appointments and scheduling with automated confirmations, reminders, and calendar sync.

    booking system architecture scalable database design booking API patterns idempotent APIs concurrency control resource scheduling Mewayz API

    Start managing your business smarter today

    Join 30,000+ businesses. Free forever plan · No credit card required.

    Ready to put this into practice?

    Join 30,000+ businesses using Mewayz. Free forever plan — no credit card required.

    Start Free Trial →

    Ready to take action?

    Start your free Mewayz trial today

    All-in-one business platform. No credit card required.

    Start Free →

    14-day free trial · No credit card · Cancel anytime