Skip to content

Commit

Permalink
adr
Browse files Browse the repository at this point in the history
  • Loading branch information
Marc Gorzala committed Nov 13, 2023
1 parent a5cdf4d commit 25abb5c
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,32 +3,33 @@

=== PostgreSQL as our default Database

[discret]
==== The problem
Having a default database releases the engineer from discussing each new component that needs a database. He still could use another database in case there is reason to do so, but there is a slightly increased need to argue for another database than PostgreSQL. On the other hand, there is a reduced need to argue for PostgreSQL.

Dancier needs to store information to work properly. Dancers have profiles. Dancer has recommendations, and dancers can chat with each others. All those information will obviously not stored in memory, those information need to be perstisted.

=== Influencing factors
==== Influencing factors

Everyone in the core team has at least some experience with relational databases. For No-SQL Databases there is much less experience. We are having especially no experience at all with the operation of the No-SQL database.

=== Which quality goals are affected?
==== Which quality goals are affected?

No one

=== Which risks are affected?
==== Which risks are affected?

Choosing the wrong database could impact the availability and performance of our system. This could directly lead to a lower NPS.

It could also have an impact on the development efforts. Especially in case the engineers do not have any experience with a chosen database.

=== Assumptions
==== Assumptions

We expect no load on the system that would require a horizontal scaling of our database.
We expect no load on the system that would require a horizontal scaling of our dathat tabase.

We would expect, that even when a part of Dancier would require horizontal scaling, that it will come with an acceptable effort to just move with that part to an appropriate database, as we design everything modular enough.

=== Option we take a look on
==== Option we take a look on

==== MongoDB
MongoDB's main advantages of offering transparent sharding, does not pay of (based on our assumption), as we do not need horizontal sharding.
Expand All @@ -40,23 +41,31 @@ Everyone in the team could immediatly start developing with PostgreSQL. The limi
==== Cassandra
Almost the same as with MongoDB.

=== Decision
==== Decision
As of now, in the Team not even one member of Dancier ist aware of one Use Case could not easily be satisfied with PostgreSQL under the expected load. This will also include quite optimistic expectations for the success of Danicer.
This would also be the case for Cassandra and MongoDB, but the knowledge of using and operating them correctly is so limited, that it would be a Risk using them as of now.
We should develop all our components in that way, so that it should be easy to change the database, once that is needed.

For that reason, we are _defaulting_ to using PostgreSQL.

=== Python for all Data science related tasks
On of the Quality goals is, that dancier
==== The problem
One of our top quality goals is the the recommendations we offer to our dancers should be good.
So we want to use best tooling and frameworks that helps us in implementing a good recommender.
Our main langugage ist Java. So at first we could implement the recommender in Java.


=== Computing Recommendations in its own deployable

==== The problem
As we decided to have have Python for all data science realted stuff.

=== Self Contained System for Kikerki


=== Batch Mode for computing the recommendations






Expand Down
3 changes: 1 addition & 2 deletions src/main/jbake/content/technology-stack.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,7 @@ image:./images/logo-flask.svg[alt="Flask Logo", width=100, height=100]]
[stripes=odd, grid=cols, frame=none, cols="2"]
|===
|Javascript| Typescript
|
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference?retiredLocale=de[
|https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference?retiredLocale=de[
image:./images/logo-javascript.svg[alt="Javascript Logo", width=100, height=100]]
|
https://www.typescriptlang.org/[
Expand Down

0 comments on commit 25abb5c

Please sign in to comment.