Skip to content

Latest commit

 

History

History
41 lines (27 loc) · 1.92 KB

adr-backend-technology.md

File metadata and controls

41 lines (27 loc) · 1.92 KB

Backend technology

Summary

The backend layer is the core component of the solution, so it's necessary to define the technology involved to build it.

Alternatives

  • Java
  • Python

Decision

Alternative selected: Python

Following table contains all the reasons that drives the decision:

Criteria Description
Usability Python is simpler and easier to learn (lower learning curve).
Most In-Demand Over the last years, Python became a more demanded language than Java.
Offer Due to the high demand, the community grows continuously, so it's easier to recruit developers to conform a team.
Deliverability Python is dynamically typed, so it's fast and friendly for development. In addition, it uses asynchronous code to tackle situations and challenges faster because each unit of code runs separately.
Boost productivity It allows to have a totally functional application within a few lines of code, unlike Java.
Community It's widely accepted by the community with a large amount of libraries supporting common tasks and use cases.
Usability It contains code that can be used for many different purposes, ranging from generating documentation to unit testing.

Constraints mapping

Constraint ID Explanation
CONS.01 With Python es easier to find developers and active community
CONS.03 There were no restrictions, except for those defined here, about technology related decisions

Architecture Characteristics Mapping

Characteristic ID Explanation
AC.MOD.01 Python is a good fit to ensure the best modifiability