https://github.com/pranjal-barnwal/road-warrior
Architecture Kata | Internal hackathon in Bentley
https://github.com/pranjal-barnwal/road-warrior
architecture-katas bentley-systems hackathon
Last synced: 15 days ago
JSON representation
Architecture Kata | Internal hackathon in Bentley
- Host: GitHub
- URL: https://github.com/pranjal-barnwal/road-warrior
- Owner: pranjal-barnwal
- Created: 2026-03-25T15:49:17.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2026-05-13T19:29:56.000Z (about 2 months ago)
- Last Synced: 2026-05-13T21:29:49.285Z (about 2 months ago)
- Topics: architecture-katas, bentley-systems, hackathon
- Homepage:
- Size: 8.7 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 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.

## Quick Links
- [Problem Statement](problem-statement.md)
- [Architecture Characterization Document](ACD.md)
- [ADR Index](ADR/README.md)
- [Presentation Guide](guide.md)
- [Presentation Rubric](presentation-rubric.md)
- [System Context Diagram](diagrams/system_context.png)
- [Container Diagram](diagrams/container.png)
- [Runtime View](diagrams/runtime_view.png)
- [Deployment View](diagrams/deployment.png)
## 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](problem-statement.md): cleaned copy of the kata brief
- [ACD.md](ACD.md): architecture characterization document covering requirements, constraints, concerns, strategy, C4 views, and deployment view
- [guide.md](guide.md): slide-by-slide presentation guide and speaker support
- [presentation-rubric.md](presentation-rubric.md): presentation scoring criteria used to evaluate the solution
### ADRs
- [ADR/README.md](ADR/README.md): ADR index with one-line summaries
- [ADR/ADR-1.md](ADR/ADR-1.md): microservices architecture with event-driven design
- [ADR/ADR-2.md](ADR/ADR-2.md): asynchronous event-driven reservation ingestion
- [ADR/ADR-3.md](ADR/ADR-3.md): real-time client updates via WebSockets or SSE
- [ADR/ADR-4.md](ADR/ADR-4.md): cloud-native deployment with managed services
- [ADR/ADR-5.md](ADR/ADR-5.md): Azure SQL as the primary operational datastore
- [ADR/ADR-6.md](ADR/ADR-6.md): automatic trip grouping with traveler override
### Diagrams
- [diagrams/system_context.plantuml](diagrams/system_context.plantuml) and [diagrams/system_context.png](diagrams/system_context.png)
- [diagrams/container.plantuml](diagrams/container.plantuml) and [diagrams/container.png](diagrams/container.png)
- [diagrams/runtime_view.plantuml](diagrams/runtime_view.plantuml) and [diagrams/runtime_view.png](diagrams/runtime_view.png)
- [diagrams/deployment.plantuml](diagrams/deployment.plantuml) and [diagrams/deployment.png](diagrams/deployment.png)
### Presentation Artifacts
- [Team 4 - Road Warrior Architecture Kata.pptx](Team%204%20-%20Road%20Warrior%20Architecture%20Kata.pptx)
- [Team 4 - Road Warrior Architecture Kata.pdf](Team%204%20-%20Road%20Warrior%20Architecture%20Kata.pdf)
- [guide.pdf](guide.pdf)
## Recommended Reading Order
If you are using this repository to learn from the architecture, read the documents in this order:
1. [problem-statement.md](problem-statement.md)
2. [ACD.md](ACD.md)
3. [ADR/README.md](ADR/README.md)
4. Individual ADR files in [ADR](ADR/README.md)
5. Diagrams in [diagrams](diagrams/system_context.png)
6. [guide.md](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](README.md) in documentation folders.
- Keep diagrams versioned from their PlantUML source files.
- When changing the architecture, update [ACD.md](ACD.md), the relevant ADRs in [ADR](ADR/README.md), and any impacted diagrams together.
- Avoid adding scratch files or editor-generated artifacts to the root of the repo.