Group | Component | Description | Interacts with | Key Functional Requirements | Future improvements |
---|---|---|---|---|---|
Utility services (no code, using external solution) | CDN | Content delivery network in front of our stystem is providing global presense for our solution and help achieve better reactiveness in terms of access times for both app and web client on the first stage. | Users (web and mobile) on one side, API Gateway on another side | Cash static content and provide quick responce for it across the world | Later (if needed) we can have multiregion deployment, but this scenario is out of scope at the moment. |
API Gateway | Api gateway serves as a sigle point of contact of web/mobile clients, third parties and external recepients of sharing links. Authorisation of users also can be implemented here. | CDN, Third parties, Booking core | Handle requests, distinguish them between components, authorize users | ||
Third party integration: | GDS/Agencies | External entities that we are going to be interacting with most of the time. Holding latest state for each booking. For simplicity we are considering now that knowing PNR and User Name is enough to get main information about booking. | GDS/Agencies Connector | Be able to provide required info using predefined interfaces | |
GDS/Agencies Connector | Module that holds logic on how to retrieve information from agencies and GDS systems. | GDS/Agencies, Booking core | Be able to interact with different agencies and GDS system, retrieve needed info about bookings, retrieve additional info for advanced functionalty like help button | ||
Social Media connector | handles interactions with social networks (allows selectively share trip and/or details if user desires to social networks), and can generate links with same granular info for sharing directly with other people selectively. | user, booking core | Suppot popular social platforms and support showing via one time link. Let decide what to share | ||
Help service: | Help Gateway: | module to provide emergency connection between user and agency. Retrieves contact details of agency and gives it to user. | users, booking core, GDS/agencies | Get contact detals of agency and provide it to customer | |
Data Analytics | Data exporter: | getting needed data (events and metrics) from storage layer periodically and store in data storage | Booking core, Data storage | Extract needed data from main storage in efficient way and store in data layer to not affect booking storage perfomance | |
Analytics storage | data lake to hold reporting data and analytics data (metrics) | Booking core, Reporter, analytics provider | Have reportng/analytics data to be processed by reporter and exposed to 3rd parties | ||
Data Reporter | Generates user reports after user is registered for one year. Report contains detailed information on the trip, using info from bookings we have in the system. | user, data storage | create reports per user that would have defined fields and formating | Support custom reports, export of data via mulipl channels/formats | |
Analytics generator | Gathers and expose various marketing metrics and data, that could be potentially valuable for third/parties and users to generate additional interest/revenue for project. | 3rd partis, data storage | Expose analytics to 3rd parties in predefined format | Support custom metrics or grouping of metrics | |
Booking core | Booking Engine | module that handles basic Create Read Update Delete for bookings. Can be initiated by user for user bookings, or by update tracker if there is a change in booking. | Booking storage, API gateway | Support CRUD operations, do validation of booking | |
Booking tracker | Component that queries all active bookings for changes every minute, in case of detecting the change updates booking in storage layer and marks it for further action. | Booking storage, GDS/Agencies Connector | Efficiently query GDS/Agency for updates regarding boking. Be able to provide update in less than 5 minutes after it happened in GDS/agency | ||
Booking storage | Hold information on all bookings. | Booking tracker, Booking Engine, Data exporter, API gateway | Efficiently and reliably store all the nformation regarding bookings of all users. Should support redundancy for optimal availability. Can have read/only replica to be exported towards data exporter. Support 2mil uses and store 15 mil users data | ||
Mail integration | Mail poller | polls emails if user allowed access to mailbox | user, mail listener, mail filterer | Scan mailbox for new booking emals to extract booking from those | |
Mail listener | interface to receive emails forwarded from user with booking confirmation | user, mail filterer | Lstens for emails from customer in case scanning is not available | ||
Mail filterer | to implement black/whitelisting | user, mail listener, mail poller | Filters emals based on some predefined rules | ||
Notification | Notifier | component that notifies client on change of booking. Could be popup in app or sms/email, in case agency/flight company didn't handle this properly. | user, booking storage | Track updates evens from booking storage do notfy action | |
Front End | Front End | component that renders web and app UI for user. | user | provide UI for user to interact with system |
| 🏠 home |