diff --git a/src/data/roadmaps/backend/content/architectural-patterns@tHiUpG9LN35E5RaHddMv5.md b/src/data/roadmaps/backend/content/architectural-patterns@tHiUpG9LN35E5RaHddMv5.md index 478d5550e..807367cf8 100644 --- a/src/data/roadmaps/backend/content/architectural-patterns@tHiUpG9LN35E5RaHddMv5.md +++ b/src/data/roadmaps/backend/content/architectural-patterns@tHiUpG9LN35E5RaHddMv5.md @@ -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) diff --git a/src/data/roadmaps/backend/content/caching@ELj8af7Mi38kUbaPJfCUR.md b/src/data/roadmaps/backend/content/caching@ELj8af7Mi38kUbaPJfCUR.md index c0948bd54..4ffe2ef18 100644 --- a/src/data/roadmaps/backend/content/caching@ELj8af7Mi38kUbaPJfCUR.md +++ b/src/data/roadmaps/backend/content/caching@ELj8af7Mi38kUbaPJfCUR.md @@ -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 diff --git a/src/data/roadmaps/backend/content/monitoring@QvMEEsXh0-rzn5hDGcmEv.md b/src/data/roadmaps/backend/content/monitoring@QvMEEsXh0-rzn5hDGcmEv.md index 2ddbe89cb..d939da750 100644 --- a/src/data/roadmaps/backend/content/monitoring@QvMEEsXh0-rzn5hDGcmEv.md +++ b/src/data/roadmaps/backend/content/monitoring@QvMEEsXh0-rzn5hDGcmEv.md @@ -1 +1,18 @@ -# Monitoring \ No newline at end of file +# 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) diff --git a/src/data/roadmaps/backend/content/monolithic-apps@Ke522R-4k6TDeiDRyZbbU.md b/src/data/roadmaps/backend/content/monolithic-apps@Ke522R-4k6TDeiDRyZbbU.md index e964d489b..e00f22a95 100644 --- a/src/data/roadmaps/backend/content/monolithic-apps@Ke522R-4k6TDeiDRyZbbU.md +++ b/src/data/roadmaps/backend/content/monolithic-apps@Ke522R-4k6TDeiDRyZbbU.md @@ -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) diff --git a/src/data/roadmaps/backend/content/pick-a-language@2f0ZO6GJElfZ2Eis28Hzg.md b/src/data/roadmaps/backend/content/pick-a-language@2f0ZO6GJElfZ2Eis28Hzg.md index 30a80ec67..9f49e9145 100644 --- a/src/data/roadmaps/backend/content/pick-a-language@2f0ZO6GJElfZ2Eis28Hzg.md +++ b/src/data/roadmaps/backend/content/pick-a-language@2f0ZO6GJElfZ2Eis28Hzg.md @@ -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/) diff --git a/src/data/roadmaps/backend/content/repo-hosting-services@NvUcSDWBhzJZ31nzT4UlE.md b/src/data/roadmaps/backend/content/repo-hosting-services@NvUcSDWBhzJZ31nzT4UlE.md index a924cba44..799863d61 100644 --- a/src/data/roadmaps/backend/content/repo-hosting-services@NvUcSDWBhzJZ31nzT4UlE.md +++ b/src/data/roadmaps/backend/content/repo-hosting-services@NvUcSDWBhzJZ31nzT4UlE.md @@ -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/) diff --git a/src/data/roadmaps/backend/content/server-side@z1-eP4sV75GBEIdM4NvL9.md b/src/data/roadmaps/backend/content/server-side@z1-eP4sV75GBEIdM4NvL9.md index f1e38af8e..f673c916a 100644 --- a/src/data/roadmaps/backend/content/server-side@z1-eP4sV75GBEIdM4NvL9.md +++ b/src/data/roadmaps/backend/content/server-side@z1-eP4sV75GBEIdM4NvL9.md @@ -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) diff --git a/src/data/roadmaps/backend/content/service-mesh@n14b7sfTOwsjKTpFC9EZ2.md b/src/data/roadmaps/backend/content/service-mesh@n14b7sfTOwsjKTpFC9EZ2.md index e6469c830..45f548210 100644 --- a/src/data/roadmaps/backend/content/service-mesh@n14b7sfTOwsjKTpFC9EZ2.md +++ b/src/data/roadmaps/backend/content/service-mesh@n14b7sfTOwsjKTpFC9EZ2.md @@ -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) diff --git a/src/data/roadmaps/backend/content/soa@tObmzWpjsJtK4GWhx6pwB.md b/src/data/roadmaps/backend/content/soa@tObmzWpjsJtK4GWhx6pwB.md index 7a66a4b08..09d2e5db0 100644 --- a/src/data/roadmaps/backend/content/soa@tObmzWpjsJtK4GWhx6pwB.md +++ b/src/data/roadmaps/backend/content/soa@tObmzWpjsJtK4GWhx6pwB.md @@ -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)