Google Sign-In Required

Use your company Google account to access the BetterFleet private content.

Back to private home

BetterFleet Support Private
Skip to content
BetterFleet Dev Wiki
0004 - DynamoDB for default database
Initializing search
    bf-dev
    • Home
    • Product Capabilities
    • Process
    • Current Work
    • System Design
    • Software Reference
    • Operations
    bf-dev
    • Home
      • Overview
      • Manage
      • Overview
      • Product Engineering Workflow
      • Product Engineering Delivery
      • Product Engineering Workflow in Linear
        • GitLab Feature Flags
        • In-App Docs Authoring
        • Release Notes
      • Templates
      • Publishing
      • Workflow Companions
      • Overview
      • Active Artifacts
      • Backlog Artifacts
      • Archived Artifacts
      • Overview
      • Microgrid
      • OSCP
        • Challenge
        • Specification
        • Spec
        • Architecture
        • Overview
        • Script Runtime Model
        • Compose Profiles and Modes
        • Repo Topology
        • CI and Release Integration
        • Overview
        • Internal Application Diagrams
          • Overview
          • Web Model
          • Core Model
        • Service Interaction Flows
        • Data and State
          • Index
          • bf-manage-web
          • bf-manage-core
          • bf-manage-connect
          • bf-manage-sitepwrmon
          • bf-manage-incidents
          • bf-telematics
          • bf-depot-sim
          • bf-manage-roaming
          • bf-support-microsite
          • bf-digital-twin
          • bf-schedule-creator
        • Overview
        • Internal Application Diagrams
        • Migration and Flags
        • Simulation Request Lifecycle
          • Index
          • bf-bnl-ui
          • bf-bnl-settings
          • bf-bnl-schedule-analysis-compute
          • bf-route-modelling
          • bf-schedule-creator
          • bf-digital-twin
        • Overview
        • Secrets and Env Strategy
        • Vendors and Local Dependencies
        • ADRs
        • Service Matrix
        • Cloud Dependencies
        • Ports and URLs
      • Onboarding
      • Daily Operations Runbook
        • Overview
        • Staging Hotfix Release
        • Production Hotfix Release
        • Terraform Plan Dry Runs
      • Troubleshooting
      • Testing Guide
    • Date
    • Status
    • Context
    • Decision
    • Consequences

    0004 - DynamoDB for default database¶

    Date¶

    2022-06-17

    Status¶

    Superseded by 0005 - Data Persistence

    Context¶

    Now that we need to store data for BetterFleet Bus and other products going forward, we are investigating which DB structure is best to store scenario parameter data. We have investigated the advantages of various Amazon offerings including S3, RDS and DynamoDB.

    RDS has been used previously for storing similarly structured data. It has advantages when needing to explore relationships between records. Its disadvantages are a more difficult development experience and higher hosting costs.

    DynamoDB provides a NoSQL alternative with cheaper data storage and simpler development experience, at the expense of the relational benefits of RDS. However, we anticipate few relational use cases (joins etc.) when developing.

    Decision¶

    Our default choice for a database service will be Amazon's DynamoDB.

    Consequences¶

    We will need to be aware of the added complexity of joining between DynamoDB tables.

    We will be using a mixture of SQL and NoSQL databases in the foreseeable future. This implies we will either have differing data storage technologies going forward (probably preferred), or we will have to spend time migrating these architectures to DynamoDB.

    Made with Material for MkDocs