Skip to content

Latest commit

 

History

History
113 lines (83 loc) · 4.39 KB

05_Architectural_Quanta.md

File metadata and controls

113 lines (83 loc) · 4.39 KB

Architectural Quanta

  1. Architectural Quanta
    1. Components And Responsibilities
      1. Presentation Layer
      2. API Gateway
      3. Services
        1. EmailScanner
        2. EmailParser
        3. UpdateMerger
        4. DataSupplier
        5. TripPlanner
        6. TripDashboard
        7. Notification
        8. SocialSharing
        9. PersonalAccountVault
        10. UserReporting
        11. DataAnalytics

"An independently deployable artifact with high functional cohesion and synchronous connascence" (Fundamentals of Software Architecture by Mark Richards an Neal Ford)

Based on the requirements and the design decisions we took for the next-generation online trip management dashboard, we identified the following architectural quanta. The below illustration shows an overview of the core components:

images

Components and Responsibilities

Presentation layer

Progressive Web App (PWA) (refer to: 0004-PWA) allow application to be developed that can be accesses via web browsers but behave like native app. Following are some key features of PWA:

  • Cross-platform compatible
  • Provide excellent offline support
  • Support faster development
  • Deployment process is seamless and does not depend on app stores

API Gateway

API gateway (refer to: 0008-API-Gateway) to act as a single entry point for collection of microservices. Central entity to manage, route and secure API requests and responses. Following are some key features of API Gateway:

  • Request routing
  • Load balancing
  • Authentication and authorization
  • Rate limiting and throttling
  • Security
  • Logging and monitoring
  • Caching

Services

Below, you will discover the system's contemplated services. Please note that crucial components, which are mandatory to provide a first MVP (Minimum Viable Product), are elaborated on in greater detail, offering a transparent view of their inner workings

EmailScanner

  • Scans user mailboxes for emails.
  • Filters emails based on predefined rules.
  • Publishes relevant emails to a message queue.

Go to whitebox view

EmailParser

  • Reads emails from the message queue and parses them to collect relevant data.
  • Cleans and unifies data, then pushes it to a message queue to be consumed by the UpdateMerger service.

Go to whitebox view

UpdateMerger

  • Identifies duplicate trips.
  • Merges data from duplicate trips and pushes integrated data to the database.

Go to whitebox view

DataSupplier

  • This service communicates with various Agency APIs.
  • Received data is parsed and stored in storage.

Go to whitebox view

TripPlanner

  • Manages various user trips.
  • Prioritizes trips based on various parameters.
  • Allows updates to user trips.

Go to whitebox view

TripDashboard

  • Constructs a dataset to be served to the Dashboard.
  • Provides an optimized dataset that is relevant for the caller.

Go to whitebox view

Notification

  • Central hub to perform all notification tasks via various services, like push notifications, email, WhatsApp, SMS, etc.

Go to whitebox view

SocialSharing

  • Provides a common interface to post/share user trip data on various social media platforms, like X (formerly Twitter), Facebook, Instagram, etc.

Go to whitebox view

PersonalAccountVault

  • Vault to manage user accounts.

UserReporting

  • Reporting service to build data structures for user reporting.

DataAnalytics

  • Performs data analytics on data.
  • With the help of machine learning, devises travel trends, preferred locations, communication modes, etc.

<<Previous Page ---- Next Page >>