Skip to content

Commit

Permalink
Improve backend roadmap resources (#7257)
Browse files Browse the repository at this point in the history
* Phase - A to F

* Phase - G to M

* Phase - N to S

* Phase - S to Z

* Update src/data/roadmaps/backend/content/[email protected]

Co-authored-by: dsh <[email protected]>

* Update src/data/roadmaps/backend/content/[email protected]

Co-authored-by: dsh <[email protected]>

* Update src/data/roadmaps/backend/content/[email protected]

Co-authored-by: dsh <[email protected]>

* Update src/data/roadmaps/backend/content/[email protected]

Co-authored-by: dsh <[email protected]>

* Update src/data/roadmaps/backend/content/open-api-specs@9cD5ag1L0GqHx4_zxc5JX.md

Co-authored-by: dsh <[email protected]>

* Update twelve-factor-apps@8DmabQJXlrT__COZrDVTV.md


Co-authored-by: dsh <[email protected]>

---------

Co-authored-by: dsh <[email protected]>
  • Loading branch information
offensive-vk and dansholds authored Oct 1, 2024
1 parent 6b118d1 commit 4793680
Show file tree
Hide file tree
Showing 59 changed files with 93 additions and 87 deletions.
1 change: 1 addition & 0 deletions src/data/roadmaps/backend/content/[email protected]
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,6 @@
An architectural pattern is a general, reusable solution to a commonly occurring problem in software architecture within a given context. The architectural patterns address various issues in software engineering, such as computer hardware performance limitations, high availability and minimization of a business risk.

Visit the following resources to learn more:

- [@article@14 Architectural Patterns to know](https://www.redhat.com/architect/14-software-architecture-patterns)
- [@article@Architectural Patterns in a nutshell](https://towardsdatascience.com/10-common-software-architectural-patterns-in-a-nutshell-a0b47a1e9013)
2 changes: 1 addition & 1 deletion src/data/roadmaps/backend/content/[email protected]
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@ Learn more from the following resources:

- [@official@AWS Neptune Website](https://aws.amazon.com/neptune/)
- [@video@Getting Started with Neptune Serverless](https://www.youtube.com/watch?v=b04-jjM9t4g)
- [@article@Setting Up Amazon Neptune Graph Database](https://cliffordedsouza.medium.com/setting-up-amazon-neptune-graph-database-2b73512a7388)
- [@article@Setting Up Amazon Neptune Graph Database](https://cliffordedsouza.medium.com/setting-up-amazon-neptune-graph-database-2b73512a7388)
2 changes: 1 addition & 1 deletion src/data/roadmaps/backend/content/[email protected]
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@ Back pressure is a flow control mechanism in systems processing asynchronous dat
Visit the following resources to learn more:

- [@article@Awesome Architecture: Backpressure](https://awesome-architecture.com/back-pressure/)
- [@article@Backpressure explained — the resisted flow of data through software](https://medium.com/@jayphelps/backpressure-explained-the-flow-of-data-through-software-2350b3e77ce7)
- [@article@Backpressure explained — The Resisted Flow of Data through Software](https://medium.com/@jayphelps/backpressure-explained-the-flow-of-data-through-software-2350b3e77ce7)
- [@video@What is Back Pressure](https://www.youtube.com/watch?v=viTGm_cV7lE)
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ Oracle Base Database Service enables you to maintain absolute control over your

Learn more from the following resources:

- [@official@Base Database Website](https://docs.oracle.com/en-us/iaas/base-database/index.html)
- [@official@Base Database Website](https://docs.oracle.com/en-us/iaas/base-database/index.html)
2 changes: 1 addition & 1 deletion src/data/roadmaps/backend/content/[email protected]
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ Bcrypt is a password-hashing function designed to securely hash passwords for st

Visit the following resources to learn more:

- [@article@bcrypts npm package](https://www.npmjs.com/package/bcrypt)
- [@opensource@bcrypt](https://www.npmjs.com/package/bcrypt)
- [@article@Understanding bcrypt](https://auth0.com/blog/hashing-in-action-understanding-bcrypt/)
- [@video@bcrypt explained](https://www.youtube.com/watch?v=AzA_LTDoFqY)
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Bitbucket

Bitbucket is a web-based version control repository hosting service owned by Atlassian. It primarily uses Git version control systems, offering both cloud-hosted and self-hosted options. Bitbucket provides features such as pull requests for code review, branch permissions, and inline commenting on code. It integrates seamlessly with other Atlassian products like Jira and Trello, making it popular among teams already using Atlassian tools. Bitbucket supports continuous integration and deployment through Bitbucket Pipelines. It offers unlimited private repositories for small teams, making it cost-effective for smaller organizations. While similar to GitHub in many aspects, Bitbucket's integration with Atlassian's ecosystem and its pricing model for private repositories are key differentiators. It's widely used for collaborative software development, particularly in enterprise environments already invested in Atlassian's suite of products.
Bitbucket is a web-based version control repository hosting service owned by Atlassian. It primarily uses Git version control systems, offering both cloud-hosted and self-hosted options. Bitbucket provides features such as pull requests for code review, branch permissions, and inline commenting on code. It integrates seamlessly with other Atlassian products like Jira and Trello, making it popular among teams already using Atlassian tools. Bitbucket supports continuous integration and deployment through Bitbucket Pipelines. It offers unlimited private repositories for small teams, making it cost-effective for smaller organizations.

Visit the following resources to learn more:

Expand Down
2 changes: 1 addition & 1 deletion ...ta/roadmaps/backend/content/[email protected]
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@ Visit the following resources to learn more:
- [@article@How Browsers Work](https://www.ramotion.com/blog/what-is-web-browser/)
- [@article@Populating the Page: How Browsers Work](https://developer.mozilla.org/en-US/docs/Web/Performance/How_browsers_work)
- [@video@How Do Web Browsers Work?](https://www.youtube.com/watch?v=5rLFYtXHo9s)
- [@feed@Explore top posts about Browsers](https://app.daily.dev/tags/browsers?ref=roadmapsh)
- [@feed@Explore top posts about Browsers](https://app.daily.dev/tags/browsers?ref=roadmapsh)
5 changes: 5 additions & 0 deletions src/data/roadmaps/backend/content/[email protected]
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
# Caching

Caching is a technique used in computing to store and retrieve frequently accessed data quickly, reducing the need to fetch it from the original, slower source repeatedly. It involves keeping a copy of data in a location that's faster to access than its primary storage. Caching can occur at various levels, including browser caching, application-level caching, and database caching. It significantly improves performance by reducing latency, decreasing network traffic, and lowering the load on servers or databases. Common caching strategies include time-based expiration, least recently used (LRU) algorithms, and write-through or write-back policies. While caching enhances speed and efficiency, it also introduces challenges in maintaining data consistency and freshness. Effective cache management is crucial in balancing performance gains with the need for up-to-date information in dynamic systems.

Visit the following resources to learn more:

- [@article@What is Caching - AWS](https://aws.amazon.com/caching/)
- [@article@Caching - Cloudflare](https://www.cloudflare.com/learning/cdn/what-is-caching/)
2 changes: 1 addition & 1 deletion src/data/roadmaps/backend/content/[email protected]
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@ Caddy is a modern, open-source web server written in Go. It's known for its simp
Visit the following resources to learn more:

- [@official@Official Website](https://caddyserver.com/)
- [@opensource@caddyserver/caddy](https://github.com/caddyserver/caddy)
- [@opensource@caddyserver/caddy - Caddy on GitHub](https://github.com/caddyserver/caddy)
- [@video@How to Make a Simple Caddy 2 Website](https://www.youtube.com/watch?v=WgUV_BlHvj0)
2 changes: 2 additions & 0 deletions src/data/roadmaps/backend/content/[email protected]
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
# CDN (Content Delivery Network)

A Content Delivery Network (CDN) service aims to provide high availability and performance improvements of websites. This is achieved with fast delivery of website assets and content typically via geographically closer endpoints to the client requests.

Traditional commercial CDNs (Amazon CloudFront, Akamai, CloudFlare and Fastly) provide servers across the globe which can be used for this purpose. Serving assets and contents via a CDN reduces bandwidth on website hosting, provides an extra layer of caching to reduce potential outages and can improve website security as well

Visit the following resources to learn more:

- [@article@CloudFlare - What is a CDN? | How do CDNs work?](https://www.cloudflare.com/en-ca/learning/cdn/what-is-a-cdn/)
- [@article@AWS - CDN](https://aws.amazon.com/what-is/cdn/)
- [@video@What is Cloud CDN?](https://www.youtube.com/watch?v=841kyd_mfH0)
- [@video@What is a CDN and how does it work?](https://www.youtube.com/watch?v=RI9np1LWzqw)
4 changes: 2 additions & 2 deletions src/data/roadmaps/backend/content/[email protected]
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ CI/CD (Continuous Integration/Continuous Delivery) is a set of practices and too

Visit the following resources to learn more:

- [@video@DevOps CI/CD Explained in 100 Seconds by Fireship](https://www.youtube.com/watch?v=scEDHsr3APg)
- [@video@Automate your Workflows with GitHub Actions](https://www.youtube.com/watch?v=nyKZTKQS_EQ)
- [@article@What is CI/CD?](https://about.gitlab.com/topics/ci-cd/)
- [@article@A Primer: Continuous Integration and Continuous Delivery (CI/CD)](https://thenewstack.io/a-primer-continuous-integration-and-continuous-delivery-ci-cd/)
- [@video@DevOps CI/CD Explained in 100 Seconds](https://www.youtube.com/watch?v=scEDHsr3APg)
- [@video@Automate your Workflows with GitHub Actions](https://www.youtube.com/watch?v=nyKZTKQS_EQ)
- [@article@Articles about CI/CD](https://thenewstack.io/category/ci-cd/)
- [@feed@Explore top posts about CI/CD](https://app.daily.dev/tags/cicd?ref=roadmapsh)
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ Client-side caching is a technique where web browsers or applications store data

Visit the following resources to learn more:

- [@article@Client Side Caching](https://redis.io/docs/latest/develop/use/client-side-caching/)
- [@video@Everything you need to know about HTTP Caching](https://www.youtube.com/watch?v=HiBDZgTNpXY)
- [@article@Client-side Caching](https://redis.io/docs/latest/develop/use/client-side-caching/)
2 changes: 1 addition & 1 deletion src/data/roadmaps/backend/content/[email protected]
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ Data replication is the process of creating and maintaining multiple copies of t

Visit the following resources to learn more:

- [@article@What is data replication?](https://www.ibm.com/topics/data-replication)
- [@article@Data Replication? - IBM](https://www.ibm.com/topics/data-replication)
- [@video@What is Data Replication?](https://www.youtube.com/watch?v=iO8a1nMbL1o)
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,18 @@

Design and Development Principles are fundamental guidelines that inform the creation of software systems. Key principles include:

1. SOLID (Single Responsibility, Open-Closed, Liskov Substitution, Interface Segregation, Dependency Inversion)
2. DRY (Don't Repeat Yourself)
3. KISS (Keep It Simple, Stupid)
4. YAGNI (You Aren't Gonna Need It)
5. Separation of Concerns
6. Modularity
7. Encapsulation
8. Composition over Inheritance
9. Loose Coupling and High Cohesion
10. Principle of Least Astonishment
- SOLID (Single Responsibility, Open-Closed, Liskov Substitution, Interface Segregation, Dependency Inversion)
- DRY (Don't Repeat Yourself)
- KISS (Keep It Simple, Stupid)
- YAGNI (You Aren't Gonna Need It)
- Separation of Concerns
- Modularity
- Encapsulation
- Composition over Inheritance
- Loose Coupling and High Cohesion
- Principle of Least Astonishment

These principles aim to create more maintainable, scalable, and robust software. They encourage clean code, promote reusability, reduce complexity, and enhance flexibility. While not rigid rules, these principles guide developers in making design decisions that lead to better software architecture and easier long-term maintenance. Applying these principles helps in creating systems that are easier to understand, modify, and extend over time.
Visit the following resources to learn more:

- [@article@Design Principles - Wikipedia](https://en.wikipedia.org/wiki/Design_principles)
- [@article@Design Principles - Microsoft](https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/index)
2 changes: 1 addition & 1 deletion src/data/roadmaps/backend/content/[email protected]
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# DNS

DNS (Domain Name System) is a hierarchical, decentralized naming system for computers, services, or other resources connected to the Internet or a private network. It translates human-readable domain names (like www.example.com) into IP addresses (like 192.0.2.1) that computers use to identify each other. DNS servers distributed worldwide work together to resolve these queries, forming a global directory service. The system uses a tree-like structure with root servers at the top, followed by top-level domain servers (.com, .org, etc.), authoritative name servers for specific domains, and local DNS servers. DNS is crucial for the functioning of the Internet, enabling users to access websites and services using memorable names instead of numerical IP addresses. It also supports email routing, service discovery, and other network protocols.
DNS (Domain Name System) is a hierarchical, decentralized naming system for computers, services, or other resources connected to the Internet or a private network. It translates human-readable domain names (like `www.example.com`) into IP addresses (like 192.0.2.1) that computers use to identify each other. DNS servers distributed worldwide work together to resolve these queries, forming a global directory service. The system uses a tree-like structure with root servers at the top, followed by top-level domain servers (.com, .org, etc.), authoritative name servers for specific domains, and local DNS servers. DNS is crucial for the functioning of the Internet, enabling users to access websites and services using memorable names instead of numerical IP addresses. It also supports email routing, service discovery, and other network protocols.

Visit the following resources to learn more:

Expand Down
4 changes: 2 additions & 2 deletions src/data/roadmaps/backend/content/[email protected]
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ Amazon DynamoDB is a fully managed, serverless NoSQL database service provided b

Learn more from the following resources:

- [@official@AWS DynamoDB Website](https://aws.amazon.com/dynamodb/)
- [@official@AWS DynamoDB](https://aws.amazon.com/dynamodb/)
- [@video@AWS DynamoDB Tutorial For Beginners](https://www.youtube.com/watch?v=2k2GINpO308)
- [@feed@daily.dev AWS DynamoDB Feed](https://app.daily.dev/tags/aws-dynamodb)
- [@feed@daily.dev AWS DynamoDB Feed](https://app.daily.dev/tags/aws-dynamodb)
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,6 @@

Database failure modes refer to the various ways in which a database system can malfunction or cease to operate correctly. These include hardware failures (like disk crashes or network outages), software bugs, data corruption, performance degradation due to overload, and inconsistencies in distributed systems. Common failure modes involve data loss, system unavailability, replication lag in distributed databases, and deadlocks. To mitigate these, databases employ strategies such as redundancy, regular backups, transaction logging, and failover mechanisms. Understanding potential failure modes is crucial for designing robust database systems with high availability and data integrity. It informs the implementation of fault tolerance measures, recovery procedures, and monitoring systems to ensure database reliability and minimize downtime in critical applications.

Visit the following resources to learn more:

- [@article@Database Failure Modes](https://ieeexplore.ieee.org/document/7107294/)
4 changes: 2 additions & 2 deletions src/data/roadmaps/backend/content/[email protected]
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# Firebase

Firebase is a comprehensive mobile and web application development platform owned by Google. It provides a suite of cloud-based services that simplify app development, hosting, and scaling. Key features include real-time database, cloud storage, authentication, hosting, cloud functions, and analytics. Firebase offers real-time synchronization, allowing data to be updated across clients instantly. Its authentication service supports multiple providers, including email/password, social media logins, and phone authentication. The platform's serverless architecture enables developers to focus on front-end development without managing backend infrastructure. Firebase also provides tools for app testing, crash reporting, and performance monitoring. While it excels in rapid prototyping and building real-time applications, its proprietary nature and potential for vendor lock-in are considerations for large-scale or complex applications. Firebase's ease of use and integration with Google Cloud Platform make it popular for startups and projects requiring quick deployment.
Firebase is a comprehensive mobile and web application development platform owned by Google. It provides a suite of cloud-based services that simplify app development, hosting, and scaling. Key features include real-time database, cloud storage, authentication, hosting, cloud functions, and analytics. Firebase offers real-time synchronization, allowing data to be updated across clients instantly. Its authentication service supports multiple providers, including email/password, social media logins, and phone authentication. The platform's serverless architecture enables developers to focus on front-end development without managing backend infrastructure. Firebase also provides tools for app testing, crash reporting, and performance monitoring.

Learn more from the following resources:

- [@official@Firebase Website](https://firebase.google.com/)
- [@video@Firebase in 100 seconds](https://www.youtube.com/watch?v=vAoB4VbhRzM)
- [@course@The ultimate guide to Firebase](https://fireship.io/lessons/the-ultimate-beginners-guide-to-firebase/)
- [@course@The Ultimate Guide to Firebase](https://fireship.io/lessons/the-ultimate-beginners-guide-to-firebase/)
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ Git is a distributed version control system designed to handle projects of any s
Visit the following resources to learn more:

- [@roadmap@Learn Git & GitHub](https://roadmap.sh/git-github)
- [@official@Git Documentation](https://git-scm.com/doc)
- [@video@Git & GitHub Crash Course For Beginners](https://www.youtube.com/watch?v=SWYqp7iY_Tc)
- [@article@Learn Git with Tutorials, News and Tips - Atlassian](https://www.atlassian.com/git)
- [@article@Git Cheat Sheet](https://cs.fyi/guide/git-cheatsheet)
- [@article@Learn Git Branching](https://learngitbranching.js.org/)
- [@feed@Explore top posts about Git](https://app.daily.dev/tags/git?ref=roadmapsh)
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ GitHub is a web-based platform for version control and collaboration using Git.
Visit the following resources to learn more:

- [@roadmap@Learn Git & GitHub](https://roadmap.sh/git-github)
- [@official@GitHub Website](https://github.com)
- [@official@GitHub](https://github.com)
- [@video@What is GitHub?](https://www.youtube.com/watch?v=w3jLJU7DT5E)
- [@video@Git vs. GitHub: Whats the difference?](https://www.youtube.com/watch?v=wpISo9TNjfU)
- [@video@Git and GitHub for Beginners](https://www.youtube.com/watch?v=RGOj5yH7evk)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ GitLab is a web-based DevOps platform that provides a complete solution for the

Visit the following resources to learn more:

- [@opensource@GitLab Website](https://gitlab.com/)
- [@article@GitLab Documentation](https://docs.gitlab.com/)
- [@official@GitLab](https://gitlab.com/)
- [@official@GitLab Documentation](https://docs.gitlab.com/)
- [@video@What is Gitlab and Why Use It?](https://www.youtube.com/watch?v=bnF7f1zGpo4)
- [@feed@Explore top posts about GitLab](https://app.daily.dev/tags/gitlab?ref=roadmapsh)
2 changes: 1 addition & 1 deletion src/data/roadmaps/backend/content/[email protected]
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,6 @@ GraphQL is a query language for APIs and a runtime for executing those queries,
Visit the following resources to learn more:

- [@roadmap@GraphQL Roadmap](https://roadmap.sh/graphql)
- [@official@GraphQL Official Website](https://graphql.org/)
- [@official@GraphQL](https://graphql.org/)
- [@video@Tutorial - GraphQL Explained in 100 Seconds](https://www.youtube.com/watch?v=eIQh02xuVw4)
- [@feed@Explore top posts about GraphQL](https://app.daily.dev/tags/graphql?ref=roadmapsh)
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,3 @@ Visit the following resources to learn more:
- [@roadmap.sh@Introduction to Internet](/guides/what-is-internet)
- [@video@How does the Internet work?](https://www.youtube.com/watch?v=x3c1ih2NJEg)
- [@video@How does the internet work? (Full Course)](https://www.youtube.com/watch?v=zN8YNNHcaZc)

2 changes: 1 addition & 1 deletion src/data/roadmaps/backend/content/[email protected]
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ JSON or JavaScript Object Notation is an encoding scheme that is designed to eli

Visit the following resources to learn more:

- [@official@Official Website](https://jsonapi.org/)
- [@official@JSON API](https://jsonapi.org/)
- [@article@What is JSON API?](https://medium.com/@niranjan.cs/what-is-json-api-3b824fba2788)
- [@video@JSON API: Explained in 4 minutes](https://www.youtube.com/watch?v=N-4prIh7t38)
2 changes: 1 addition & 1 deletion src/data/roadmaps/backend/content/[email protected]
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Apache Kafka is a distributed event streaming platform designed for high-through

Visit the following resources to learn more:

- [@official@Apache Kafka quickstart](https://kafka.apache.org/quickstart)
- [@official@Apache Kafka](https://kafka.apache.org/quickstart)
- [@video@Apache Kafka Fundamentals](https://www.youtube.com/watch?v=B5j3uNBH8X4)
- [@video@Kafka in 100 Seconds](https://www.youtube.com/watch?v=uvb00oaa3k8)
- [@feed@Explore top posts about Kafka](https://app.daily.dev/tags/kafka?ref=roadmapsh)
Loading

0 comments on commit 4793680

Please sign in to comment.