Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 20 additions & 15 deletions why-REST.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -17,21 +17,24 @@ categories:

Application programming interfaces (APIs) are ways that applications
communicate to each other through a standard structure or design. There
are several design styles available for building APIs, including Representational State Transfer (REST), Simple Object Access Protocol (SOAP), and GraphQL.
are several design styles available for building APIs, including
Representational State Transfer (REST), Simple Object Access Protocol
(SOAP), and GraphQL.

## Decision

We will use the REST architectural style for implementing the communication
protocol between our client and server components, instead of SOAP or
GraphQL.
We will use the REST architectural style for implementing the
communication protocol between our client and server components, instead
of SOAP or GraphQL.

## Alternatives

### SOAP

[SOAP](https://www.w3.org/TR/soap12-part0/) is a widely used technology for implementing web services. SOAP is
based on the XML protocol and supports a wide range of messaging
formats, such as binary and MIME types, making it quite flexible.
[SOAP](https://www.w3.org/TR/soap12-part0/) is a widely used technology
for implementing web services. SOAP is based on the XML protocol and
supports a wide range of messaging formats, such as binary and MIME
types, making it quite flexible.

However, SOAP is fairly complex and heavyweight, which can make it more
difficult to implement and maintain. SOAP requires a lot of additional
Expand All @@ -42,13 +45,13 @@ communication logs.

### GraphQL

[GraphQL](https://graphql.org) is an increasingly popular technology for building web APIs.
GraphQL allows for very fine-grained control over what data is requested
and given, so it offers the most flexibility. However, GraphQL can be
complex to set up and maintain, especially for simple use cases. GraphQL
can be integrated with REST API, which is a useful feature especially
when handling large and/or complex requests. So if needed, we could
incorporate GraphQL into existing REST API.
[GraphQL](https://graphql.org) is an increasingly popular technology for
building web APIs. GraphQL allows for very fine-grained control over
what data is requested and given, so it offers the most flexibility.
However, GraphQL can be complex to set up and maintain, especially for
simple use cases. GraphQL can be integrated with REST API, which is a
useful feature especially when handling large and/or complex requests.
So if needed, we could incorporate GraphQL into existing REST API.

## Reasons for the decision

Expand All @@ -68,5 +71,7 @@ These are the reasons we are deciding on REST:
- Has better tooling support and is more widely adopted.

## Conclusion

We believe that the simplicity, flexibility, and scalability of REST
make it a better choice for the client-server communication needs of Seedcase.
make it a better choice for the client-server communication needs of the
Seedcase framework.
6 changes: 3 additions & 3 deletions why-conventional-commits.qmd
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: "Why conventional commits (with optional emojis)"
description: "Our reasons for using conventional commits (with optional emojis following the Gitmoji convention) across Seedcase projects."
description: "Our reasons for using conventional commits (with optional emojis following the Gitmoji convention) across Seedcase repositories."
date: "2024-05-14"
categories:
- git
Expand Down Expand Up @@ -41,7 +41,7 @@ Since commit message conventions are not enforced by Git itself, but
rather by the team working on a given project, the question becomes:

> Which commit message convention should we follow when we write commit
> messages in Seedcase projects?
> messages in Seedcase codebases?

## Decision drivers

Expand All @@ -50,7 +50,7 @@ List some reasons for why we need to make this decision and what things
have arisen that impact work.
:::

In Seedcase projects, we emphasise the open-source philosophies of
In the Seedcase Project, we emphasise the open-source philosophies of
transparency and collaboration. Therefore, it is essential to have a
clear and consistent commit message convention to maintain these
principles, both within the team and across external contributions.
Expand Down
49 changes: 28 additions & 21 deletions why-docker.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,8 @@ are different platforms on the market, each with unique approaches and
use cases. Even though all have a similar concept of images and
containers, there are some technical differences worth noting.

As to why we have chosen containerization, see the page [Why choose containerization technology](why-containers.qmd).
As to why we have chosen containerization, see the page [Why choose
containerization technology](why-containers.qmd).

## Comparison of technologies

Expand All @@ -31,9 +32,12 @@ As to why we have chosen containerization, see the page [Why choose containeriza
Docker is without a doubt the most popular container
application/platform. According to Stack Overflow's [2020 Developer
Survey](https://insights.stackoverflow.com/survey/2020), which included
almost 65,000 respondents, Docker was the [third most popular](https://insights.stackoverflow.com/survey/2020#technology-platforms) platform
among developers, trailing only Linux and Windows. In this survey, Docker
was the [most wanted and the second most loved](https://insights.stackoverflow.com/survey/2020#technology-most-loved-dreaded-and-wanted-platforms) platform.
almost 65,000 respondents, Docker was the [third most
popular](https://insights.stackoverflow.com/survey/2020#technology-platforms)
platform among developers, trailing only Linux and Windows. In this
survey, Docker was the [most wanted and the second most
loved](https://insights.stackoverflow.com/survey/2020#technology-most-loved-dreaded-and-wanted-platforms)
platform.

Docker is incredible in many ways. It is a developer-friendly open
source platform that can be used for rapid application development and
Expand All @@ -53,10 +57,11 @@ from the outside environment.

### Podman

[Podman](https://podman.io) is an open-source, Linux-native tool designed to develop, manage,
and run containers and pods under the Open Container Initiative (OCI)
standards. Presented as a user-friendly container orchestrator developed
by [Red Hat](https://www.redhat.com/en).
[Podman](https://podman.io) is an open-source, Linux-native tool
designed to develop, manage, and run containers and pods under the Open
Container Initiative (OCI) standards. Presented as a user-friendly
container orchestrator developed by [Red
Hat](https://www.redhat.com/en).

Podman is a daemonless container engine that enables users to create,
manage, and run OCI Containers on the Linux system. Podman, like Docker,
Expand All @@ -72,11 +77,11 @@ containers is viewed by some as improving system security.

### rkt

[rkt](https://github.com/rkt/rkt), like other container technologies, lets you separate your software
from its surroundings. However, rkt provides adjustable isolation,
allowing you to choose the appropriate amount of isolation utilising
rkt's pluggable runtime architecture, which is divided into different
phases.
[rkt](https://github.com/rkt/rkt), like other container technologies,
lets you separate your software from its surroundings. However, rkt
provides adjustable isolation, allowing you to choose the appropriate
amount of isolation utilising rkt's pluggable runtime architecture,
which is divided into different phases.

rkt also includes security measures like a signature verification by
default and even privilege separation, which is in charge of retrieving
Expand All @@ -86,7 +91,9 @@ unforeseen vulnerabilities.

The rkt is not a complete platform, end-to-end solution. It is instead
utilised in conjunction with other technologies or in substitute of
particular Docker system components. Furthermore, the [rkt project](https://github.com/rkt/rkt) has been archived on GitHub as of February, 2020.
particular Docker system components. Furthermore, the [rkt
project](https://github.com/rkt/rkt) has been archived on GitHub as of
February, 2020.

### Hyper-V

Expand All @@ -107,13 +114,13 @@ as the host.
## Conclusion

After researching the container platform on the market, Docker still is
the best option for Seedcase. First of all, Docker has the world's
largest repository of container images that allow Docker users to
create, test, store and distribute containers. Secondly, Docker is a
the best option for Seedcase software. First of all, Docker has the
world's largest repository of container images that allow Docker users
to create, test, store and distribute containers. Secondly, Docker is a
single, robust, and autonomous tool. Docker manages, runs, builds, and
does all other container-related tasks independently of any other
third-party tools. Lastly, Docker has a lengthy history of working with
well-known cloud platforms like Amazon Web Services (AWS) and Google Cloud
Platform (GCP). It is also compatible with Microsoft, Azure, and OpenStack.
Overall, regardless of how great the alternatives are, Docker is the most
suitable container platform for this project.
well-known cloud platforms like Amazon Web Services (AWS) and Google
Cloud Platform (GCP). It is also compatible with Microsoft, Azure, and
OpenStack. Overall, regardless of how great the alternatives are, Docker
is the most suitable container platform for this project.
Loading