あなたがAirbnbのシステムアーキテクトだったら、システムをどのように設計しますか?

まず、ビジネスの性質における機能要件と非機能要件を理解する必要があります。Airbnb は、家を貸したいと考えている個人と、短期の宿泊施設や部屋を探している人々を結び付けるオンライン プラットフォームです。

機能要件

1.家主

ホテルのマネージャーはプラットフォーム上で、ホテルとその空室状況、ホテルの部屋を予約したい顧客に関するデータをシステムに入力します。ここでのホテル経営者とは、短期ベースで部屋を貸したい家主を指します。

• プラットフォームにホテルを登録する機能 • ホテルの部屋タイプを追加/更新/削除 • 特定の部屋タイプの部屋を追加/更新/削除 • 部屋タイプの価格と在庫を毎日定義

2. ユーザー/顧客

1. 都市、チェックイン日、チェックアウト日別に利用可能なホテルを検索する機能 2. ホテルを選択し、利用可能なすべてのホテル タイプとその価格を表示する機能 3. 希望の部屋タイプを選択して予約を続行する機能 4 . 予約完了後に予約に関する情報を受け取る 詳細の通知

非機能要件

1. ホテルのマネージャーと予約プロセスに関連する操作を処理するシステムは、一貫性が高くなければなりません。 2. ホテルを顧客に表示するための検出プラットフォームは、可用性が高い必要があります。 3. システムの遅延は低くなければなりません。 4. システムは、次のような拡張性が高い必要があります。ホテルの数と新規顧客の数の増加に対応する 5. システムは、2 人の顧客が同じ日に同じ部屋を予約できないようにするために、同時リクエストを処理できる必要があります。

高レベルの図とデータベース スキーマまたはエンティティの設計を準備できます。

8ac0b0052523d8f81bc9224bea170ae1.png
 
99551fb7c66214cdcfbc81bf3bbf229c.png
54f6d8ee7a66df606a5519d95da85ecb.png
 
01d44960c2557cd6f62c88bbd0075d74.png
 
2ed387be11ca92368d00ff4b6dc80814.png
 
56a51e42baf6881d19bccec04247e7cf.jpeg
 
9c3b8e704b48a73f54060d2956ad6861.jpeg
 
cea99d4e56aa0ec6d65f0020c0f300fc.png
 
1250b0f2fb399c533637c1a234038195.png
 

このシステムに使用されるコア REST API を特定しましょう

1. ホテルを登録しますPOST /hotel/Register 2. 部屋のタイプをホテルに追加しますPOST /hotel /{hotel_id}/room-type 3. 部屋をホテルに追加しますPOST /hotel/{hotel_id}/room-type/ {room_type_id} /room 4. 近くのホテルのリストを返しますGET /hotels/location/{location_id} 5. ホテルに従って詳細情報を返しますGET /hotel/{hotel_id} 6. ホテルの部屋を予約しますPOST /booking 7.ユーザーの予約を返すGET /user /{user_id}/bookings 8. ホテルの予約に戻るGET /hotel/{hotel_id}/bookings 9. チェックインPUT /booking/{booking_id}/check-in 10. チェックアウトPUT /booking/{booking_id} /チェックアウト

API 1、2、および 3 は、ホテル管理サービスの一部になります。

API 4 および 5 は、検出プラットフォームの一部になります

API 6、9、および 10 は予約サービスの一部になります。

API 7 と 8 は予約履歴サービスの一部になります

ホテルマネージャー API

•ホテルの詳細、部屋のタイプ、料金などはホテルマネージャーが管理します。• ホテルのマネージャーは詳細を投稿し、ホテルの空室状況を取得するためにシステムを更新します。これにより、イベントが非同期キューに送信され、検索目的で AWS Lambda 関数によって消費されます。•ユーザー/顧客はホテルを検索し、好みの部屋タイプを選択できます。•ユーザーはこのアカウントを通じて予約履歴を確認できます。

もっとエキサイティング〜

おすすめ

転載: blog.csdn.net/weixin_37604985/article/details/132614079