Atlassian Tools — Architecture
GitHub

Atlassian Tools

    • 1. Introduction and Goals
    • 2. Architecture Constraints
    • 3. Context and Scope
    • 4. Solution Strategy
    • 5. Building Block View
    • 6. Runtime View
    • 7. Deployment View
    • 8. Cross-cutting Concepts
      • 8.1 Sample: A Custom Parser
    • 9. Architecture Decisions
      • 9.1 ADR-1: Consume generated HTML instead of AsciiDoc sources
      • 9.2 ADR-2: Confluence REST API v2, with one v1 exception
      • 9.3 ADR-3: Content hash in a page property for change detection
      • 9.4 ADR-4: Two-phase publishing
      • 9.5 ADR-5: Orphan deletion opt-out, into the trash, scoped to a root page
      • 9.6 ADR-6: Pluggable parser via a class name, resolved defensively
      • 9.7 ADR-7: Split into three artifacts
      • 9.8 ADR-8: Standalone CLI as a thin adapter, not a rewrite
    • 10. Quality Requirements
    • 11. Risks and Technical Debt
    • 12. Glossary
Atlassian Tools main
  • Atlassian Tools
    • main
  • Atlassian Tools
  • 9. Architecture Decisions
Edit this Page

9. Architecture Decisions

Each significant decision gets its own page: context, decision and consequences, so a single decision can be read — and linked to — on its own.

  • ADR-1: Consume generated HTML instead of AsciiDoc sources

  • ADR-2: Confluence REST API v2, with one v1 exception

  • ADR-3: Content hash in a page property for change detection

  • ADR-4: Two-phase publishing

  • ADR-5: Orphan deletion opt-out, into the trash, scoped to a root page

  • ADR-6: Pluggable parser via a class name, resolved defensively

  • ADR-7: Split into three artifacts

  • ADR-8: Standalone CLI as a thin adapter, not a rewrite

© 2025-2026 Andreas Huber · Content licensed under the Apache License 2.0 · Source on GitHub · Also published in Confluence

Document structure based on the arc42 template by Dr. Gernot Starke and Dr. Peter Hruschka, licensed under CC BY-SA 4.0 and modified for this project.

This page was built using the Antora default UI, whose source code is licensed under the terms of the MPL-2.0 license.