Skip to content

Commit

Permalink
Improvements to backend roadmap content (#6000)
Browse files Browse the repository at this point in the history
* Update [email protected]

* Update [email protected]

removed a biased (by Bitbucket) link and put one by a regular guy

* Update [email protected]

added a warning for caching

* Update [email protected]

- removed a deprecated article

since caching is a complex topic I added links about strategies, Distributed ones and example of Hibernate 1st/2nd level caches

* New content "monitoring" node

* Update [email protected]

* Update [email protected]

* Update [email protected]

added a simpler link because the link to the reference is probably not going to be read by many

* added another link to [email protected]

* Service mesh - fixed broken link
  • Loading branch information
leni-kirilov authored Jul 31, 2024
1 parent b1409e6 commit 9f69a8d
Show file tree
Hide file tree
Showing 9 changed files with 33 additions and 6 deletions.
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 @@ -3,5 +3,5 @@
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)
4 changes: 3 additions & 1 deletion src/data/roadmaps/backend/content/[email protected]
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# Caching

Caching is a technique of storing frequently used data or information in a local memory, for a certain time period. So, next time, when the client requests the same information, instead of retrieving the information from the database, it will give the information from the local memory. The main advantage of caching is that it improves the performance by reducing the processing burden.
Caching is a technique of storing frequently used data or results of complex computations in a local memory, for a certain period. So, next time, when the client requests the same information, instead of retrieving the information from the database, it will give the information from the local memory. The main advantage of caching is that it improves performance by reducing the processing burden.

NB! Caching is a complicated topic that has obvious benefits but can lead to pitfalls like stale data, cache invalidation, distributed caching etc
19 changes: 18 additions & 1 deletion src/data/roadmaps/backend/content/[email protected]
Original file line number Diff line number Diff line change
@@ -1 +1,18 @@
# Monitoring
# Monitoring

Distributed systems are hard to build, deploy and maintain. They consist of multiple components which communicate with each other. In parallel to that, users use the system, resulting in multiple requests. Making sense of this noise is important to understand:
- how the system behaves
- is it broken
- is it fast enough
- what can be improved

A product can integrate with existing monitoring products (APM - application performance management). They can show a detailed view of each request - its user, time, components involved, state(error or OK) etc.

We can build dashboards with custom events or metrics according to our needs. Automatic alert rules can be configured on top of these events/metrics.

A few popular tools are Grafana, Sentry, Mixpanel, NewRelic etc

- [@article@Observability vs Monitoring?](https://www.dynatrace.com/news/blog/observability-vs-monitoring/)
- [@article@What is APM?](https://www.sumologic.com/blog/the-role-of-apm-and-distributed-tracing-in-observability/)
- [@article@Top monitoring tools 2024](https://thectoclub.com/tools/best-application-monitoring-software/)
- [@article@Caching strategies](https://medium.com/@genchilu/cache-strategy-in-backend-d0baaacd2d79)
2 changes: 2 additions & 0 deletions src/data/roadmaps/backend/content/[email protected]
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

Monolithic architecture is a pattern in which an application handles requests, executes business logic, interacts with the database, and creates the HTML for the front end. In simpler terms, this one application does many things. It's inner components are highly coupled and deployed as one unit.

It is recommended to build simple applications as a monolith for faster development cycle. Also suitable for Proof-of-Concept(PoC) projects.

Visit the following resources to learn more:

- [@article@Pattern: Monolithic Architecture](https://microservices.io/patterns/monolithic.html)
Expand Down
2 changes: 2 additions & 0 deletions src/data/roadmaps/backend/content/[email protected]
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,5 @@ Even if you’re a beginner the least you would have known is that Web Developme
In the same way, when it comes to Backend Web Development – we primarily require a backend (or you can say server-side) programming language to make the website function along with various other tools & technologies such as databases, frameworks, web servers, etc.

Pick a language from the given list and make sure to learn its quirks, core details about its runtime e.g. concurrency, memory model etc.

[@article@ Top Languages for job ads](https://www.tiobe.com/tiobe-index/)
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 @@ -7,4 +7,4 @@ Visit the following resources to learn more:
- [@opensource@GitHub](https://github.com/features/)
- [@article@GitLab](https://about.gitlab.com/)
- [@article@BitBucket](https://bitbucket.org/product/guides/getting-started/overview)
- [@article@How to choose the best source code repository](https://bitbucket.org/product/code-repository)
- [@article@How to choose the best source code repository](https://blockandcapital.com/en/choose-code-repository/)
4 changes: 3 additions & 1 deletion src/data/roadmaps/backend/content/[email protected]
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ Next time the user revisits the website, it loads the already saved or cached co

Visit the following resources to learn more:

- [@article@Server-side caching ](https://www.starwindsoftware.com/resource-library/server-side-caching/)
- [@article@Server-side caching and Client-side caching](https://www.codingninjas.com/codestudio/library/server-side-caching-and-client-side-caching)
- [@article@Caching strategies](https://medium.com/@genchilu/cache-strategy-in-backend-d0baaacd2d79)
- [@article@Local vs distributed](https://redis.io/glossary/distributed-caching/)
- [@article@Example - Hibernate caching](https://medium.com/@himani.prasad016/caching-in-hibernate-3ad4f479fcc0)
- [@feed@Explore top posts about Web Development](https://app.daily.dev/tags/webdev?ref=roadmapsh)
3 changes: 2 additions & 1 deletion src/data/roadmaps/backend/content/[email protected]
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ Popular service mesh implementations include Istio and Linkerd, which offer robu

Visit the following resources to learn more:

- [@article@What is a Service Mesh?](https://www.nginx.com/blog/what-is-a-service-mesh/)
- [@article@What is a Service Mesh (AWS blog)?](https://aws.amazon.com/what-is/service-mesh/)
- [@article@What is a Service Mesh (RedHat blog)?](https://www.redhat.com/en/topics/microservices/what-is-a-service-mesh)
- [@video@Microservices pain points and how service mesh can help solve those issues](https://www.youtube.com/watch?v=QiXK0B9FhO0)
- [@feed@Explore top posts about Service Mesh](https://app.daily.dev/tags/service-mesh?ref=roadmapsh)
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 @@ -4,5 +4,6 @@ SOA, or service-oriented architecture, defines a way to make software components

Visit the following resources to learn more:

- [@article@What is SOA?](https://aws.amazon.com/what-is/service-oriented-architecture/)
- [@article@Reference Architecture Foundation for Service Oriented Architecture](http://docs.oasis-open.org/soa-rm/soa-ra/v1.0/soa-ra.html)
- [@feed@Explore top posts about Architecture](https://app.daily.dev/tags/architecture?ref=roadmapsh)

0 comments on commit 9f69a8d

Please sign in to comment.