Skip to content

Repository files navigation

Road Warrior Architecture Kata

Road Warrior is an architecture kata for a next-generation trip management dashboard. The system consolidates existing airline, hotel, and car rental reservations into a traveler-facing dashboard, groups them into trips, keeps them up to date, and supports rich web and mobile experiences.

This repository is intentionally documentation-first. It captures the problem framing, the architectural characterization, the key decisions, the diagrams, and the presentation materials used to explain the solution.

Road Warrior | Pranjal Kumar, Software Engineer

Quick Links

What This Repository Contains

  • problem statement and evaluation rubric
  • architecture characterization document
  • architecture decision records
  • PlantUML source and rendered architecture diagrams
  • presentation guide and final presentation artifacts

There is no runnable application code in this repository. The purpose of the repo is to document and explain the architecture.

Repository Map

Core Documents

  • problem-statement.md: cleaned copy of the kata brief
  • ACD.md: architecture characterization document covering requirements, constraints, concerns, strategy, C4 views, and deployment view
  • guide.md: slide-by-slide presentation guide and speaker support
  • presentation-rubric.md: presentation scoring criteria used to evaluate the solution

ADRs

Diagrams

Presentation Artifacts

Recommended Reading Order

If you are using this repository to learn from the architecture, read the documents in this order:

  1. problem-statement.md
  2. ACD.md
  3. ADR/README.md
  4. Individual ADR files in ADR
  5. Diagrams in diagrams
  6. guide.md

Architecture Summary

The solution uses an event-driven microservices architecture with a Backend-for-Frontend pattern.

  • Reservation updates enter asynchronously through agency integration systems.
  • A dedicated ingestion flow normalizes and persists reservation changes.
  • Trip grouping is treated as a domain capability, not just presentation logic.
  • Web and mobile clients are supported through tailored backend experiences.
  • Managed cloud services are used to satisfy scalability, elasticity, and availability goals.

The architecture is optimized for scale, data freshness, responsiveness, and maintainability, while accepting the trade-offs of distributed-system complexity and eventual consistency.

Why This Repo Is Structured This Way

Public architecture repositories are most useful when a reader can understand the problem, the decision process, and the resulting design without needing private context. This repository is organized around that learning path:

  • start with the problem
  • understand the requirements and constraints
  • review the architecture strategy and diagrams
  • inspect the decision records
  • use the presentation guide to see how the story is communicated

Notes for Contributors

If you extend this repository, keep it documentation-centric and learner-friendly.

  • Prefer clear filenames and conventional indexes such as README.md in documentation folders.
  • Keep diagrams versioned from their PlantUML source files.
  • When changing the architecture, update ACD.md, the relevant ADRs in ADR, and any impacted diagrams together.
  • Avoid adding scratch files or editor-generated artifacts to the root of the repo.

About

Architecture Kata | Internal hackathon in Bentley

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors