<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Architecture-notes on Code4IT</title>
    <link>https://www.code4it.dev/architecture-note/</link>
    <description>Recent content in Architecture-notes on Code4IT</description>
    <generator>Hugo -- gohugo.io</generator>
    <lastBuildDate>Tue, 18 Nov 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://www.code4it.dev/architecture-note/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Davide&#39;s Code and Architecture Notes - Metrics, Logs, and Traces: the three pillars of Observability</title>
      <link>https://www.code4it.dev/architecture-notes/metrics-logs-traces/</link>
      <pubDate>Tue, 18 Nov 2025 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/architecture-notes/metrics-logs-traces/</guid>
      <description>Learn the differences between metrics, logs, and traces - the three pillars of Observability in distributed systems - and how to use them effectively.</description>
    </item>
    
    <item>
      <title>Davide&#39;s Code and Architecture Notes - Software Architecture vs Software Design</title>
      <link>https://www.code4it.dev/architecture-notes/software-architecture-vs-software-design/</link>
      <pubDate>Tue, 01 Jul 2025 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/architecture-notes/software-architecture-vs-software-design/</guid>
      <description>Software Architecture and Software Design are terms that look similar but refer to two totally different aspects of software. Let&amp;rsquo;s find the differences and their purposes.</description>
    </item>
    
    <item>
      <title>Harnessing the Power of Jitter: Enhancing Retry Patterns with a bit of randomness</title>
      <link>https://www.code4it.dev/architecture-notes/retry-patterns-jitter/</link>
      <pubDate>Tue, 06 May 2025 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/architecture-notes/retry-patterns-jitter/</guid>
      <description>Operations may fail for transient reasons. How can you implement retry patterns? And how can a simple Jitter help you stabilize the system?</description>
    </item>
    
    <item>
      <title>D2: like Mermaid, but better. Syntax, installation, and practical usage tips</title>
      <link>https://www.code4it.dev/architecture-notes/d2-diagrams/</link>
      <pubDate>Tue, 04 Feb 2025 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/architecture-notes/d2-diagrams/</guid>
      <description>D2 is an open-source tool to design architectural layouts using a declarative syntax. It&amp;rsquo;s a textual format, which can also be stored under source control. Let&amp;rsquo;s see how it works, how you can install it, and some practical usage tips.</description>
    </item>
    
    <item>
      <title>Fitness Functions in Software Architecture: measuring things to ensure prosperity</title>
      <link>https://www.code4it.dev/architecture-notes/fitness-functions/</link>
      <pubDate>Tue, 07 Jan 2025 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/architecture-notes/fitness-functions/</guid>
      <description>Non-functional requirements matter, but we often forget to validate them. You can measure them using Fitness Functions.</description>
    </item>
    
    <item>
      <title>Davide&#39;s Code and Architecture Notes - the Error Management Trio, and how it affects your software architecture</title>
      <link>https://www.code4it.dev/architecture-notes/error-management-trio/</link>
      <pubDate>Tue, 05 Nov 2024 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/architecture-notes/error-management-trio/</guid>
      <description>When designing a software system, we naturally focus more on the happy flow. But we should carefully plan to handle errors that fall into three categories: Validation, Transient, and Fatal.</description>
    </item>
    
    <item>
      <title>Davide&#39;s Code and Architecture Notes - Practical creation of C4 Model diagrams with Structurizr</title>
      <link>https://www.code4it.dev/architecture-notes/c4-model-diagrams/</link>
      <pubDate>Tue, 17 Sep 2024 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/architecture-notes/c4-model-diagrams/</guid>
      <description>The C4 Model is one of the most famous ways to describe software architectures. Let&amp;rsquo;s see some practical usage with Strucutrizr.</description>
    </item>
    
    <item>
      <title>Davide&#39;s Code and Architecture Notes - Web APIs vs REST APIs vs pseudo-REST APIs</title>
      <link>https://www.code4it.dev/architecture-notes/webapi-vs-rest-vs-pseudo-rest/</link>
      <pubDate>Tue, 30 Jul 2024 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/architecture-notes/webapi-vs-rest-vs-pseudo-rest/</guid>
      <description>When describing a web service, people often use the wrong terms. Are you really creating a REST API, or is it some sort of pseudo-REST?</description>
    </item>
    
    <item>
      <title>Davide&#39;s Code and Architecture Notes - Arc42 Documentation, for a comprehensive description of your project</title>
      <link>https://www.code4it.dev/architecture-notes/arc42-documentation/</link>
      <pubDate>Tue, 02 Jul 2024 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/architecture-notes/arc42-documentation/</guid>
      <description>How is your project structured? What are the driving forces? If you don&amp;rsquo;t know how to express this info, you should try the Arc42 template to create a strong foundation for your documentation.</description>
    </item>
    
    <item>
      <title>Davide&#39;s Code and Architecture Notes - Introducing SLI, SLO, and SLA</title>
      <link>https://www.code4it.dev/architecture-notes/sli-vs-slo-vs-sla/</link>
      <pubDate>Tue, 19 Mar 2024 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/architecture-notes/sli-vs-slo-vs-sla/</guid>
      <description>Non-functional requirements. How can you ensure you meet them? Let&amp;rsquo;s understand SLO, SLA, and SLI, and how they affect your SDLC.</description>
    </item>
    
    <item>
      <title>Davide&#39;s Code and Architecture Notes - Cache Expiration vs Cache Eviction (and Eviction Policies)</title>
      <link>https://www.code4it.dev/architecture-notes/cache-expiration-and-eviction/</link>
      <pubDate>Tue, 06 Feb 2024 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/architecture-notes/cache-expiration-and-eviction/</guid>
      <description>Caching helps your applications be more performant. However, depending on the cache size, you&amp;rsquo;ll need to sacrifice some items to make space for others. Let&amp;rsquo;s see some strategies.</description>
    </item>
    
    <item>
      <title>Davide&#39;s Code and Architecture Notes - Tracking decision with Architecture Decision Records (ADRs)</title>
      <link>https://www.code4it.dev/architecture-notes/architecture-decision-records/</link>
      <pubDate>Tue, 09 Jan 2024 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/architecture-notes/architecture-decision-records/</guid>
      <description>When designing a system&amp;rsquo;s architecture, you have many choices to make. How can you track them? ADRs are formal documents to track the reasons behind your decisions, giving context and info about the consequences of each choice.</description>
    </item>
    
    <item>
      <title>Davide&#39;s Code and Architecture Notes - 4 algorithms to implement Rate Limiting, with comparison</title>
      <link>https://www.code4it.dev/architecture-notes/rate-limiting-algorithms/</link>
      <pubDate>Tue, 07 Nov 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/architecture-notes/rate-limiting-algorithms/</guid>
      <description>You should always put a limit to the number of incoming requests. Otherwise, you can have your systems exposed to malicious attackers. Let&amp;rsquo;s see the four main algorithms to implement Rate Limit.</description>
    </item>
    
    <item>
      <title>Davide&#39;s Code and Architecture Notes - Pros and Cons of API Gateways (with vendors comparison)</title>
      <link>https://www.code4it.dev/architecture-notes/api-gateway-pros-and-cons/</link>
      <pubDate>Tue, 10 Oct 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/architecture-notes/api-gateway-pros-and-cons/</guid>
      <description>API Gateways are often a component of a microservices architecture. But they are not a silver bullet - they have some downsides to consider!</description>
    </item>
    
    <item>
      <title>Davide&#39;s Code and Architecture Notes - CAP Theorem: it&#39;s not just «Pick two»</title>
      <link>https://www.code4it.dev/architecture-notes/cap-theorem/</link>
      <pubDate>Tue, 12 Sep 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/architecture-notes/cap-theorem/</guid>
      <description>«Consistency, Availability, and Partition tolerance. Pick two». Is it really THAT simple? Let&amp;rsquo;s learn a bit more about the CAP theorem.</description>
    </item>
    
    <item>
      <title>Davide&#39;s Code and Architecture Notes - L4 vs L7 Load Balancer</title>
      <link>https://www.code4it.dev/architecture-notes/l4-vs-l7-load-balancers/</link>
      <pubDate>Tue, 27 Jun 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/architecture-notes/l4-vs-l7-load-balancers/</guid>
      <description>If you need to handle lots of incoming requests, you should manage the incoming traffic by balancing the load across different servers. You should consider adding a Load Balancer: it&amp;rsquo;s a layer of abstraction that handles requests, availability, and security in a centralized place.</description>
    </item>
    
    <item>
      <title>Davide&#39;s Code and Architecture Notes - Testing Pyramid vs Testing Diamond (and how they affect Code Coverage)</title>
      <link>https://www.code4it.dev/architecture-notes/testing-pyramid-vs-testing-diamond/</link>
      <pubDate>Tue, 30 May 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/architecture-notes/testing-pyramid-vs-testing-diamond/</guid>
      <description>Testing Pyramid and Testing Diamond are two ways of managing automated tests. We&amp;rsquo;re going to learn what they are and how they are built in relation to Unit Tests, Integration Tests, and End-to-end Tests.</description>
    </item>
    
    <item>
      <title>Davide&#39;s Code and Architecture Notes - Postel&#39;s law for API Robustness</title>
      <link>https://www.code4it.dev/architecture-notes/postel-law-for-api-robustness/</link>
      <pubDate>Tue, 18 Apr 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/architecture-notes/postel-law-for-api-robustness/</guid>
      <description>A system should be &lt;strong&gt;robust&lt;/strong&gt;: it should be able to resist change and, well, not generate regressions. Postel&amp;rsquo;s law helps define a mindset to create robust APIs.</description>
    </item>
    
    <item>
      <title>Davide&#39;s Code and Architecture Notes - Understanding Elasticity and Scalability with Pokémon Go and TikTok</title>
      <link>https://www.code4it.dev/architecture-notes/elasticity-vs-scalability/</link>
      <pubDate>Tue, 21 Feb 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/architecture-notes/elasticity-vs-scalability/</guid>
      <description>Elasticity and Scalability: two important Architectural attributes, similar but quite different</description>
    </item>
    
    <item>
      <title>Davide&#39;s Code and Architecture Notes - Server-side caching strategies: how do they work?</title>
      <link>https://www.code4it.dev/architecture-notes/caching-strategies/</link>
      <pubDate>Tue, 24 Jan 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.code4it.dev/architecture-notes/caching-strategies/</guid>
      <description>Cache-aside, Read-through, Write-through, Write-behind: quite easy on the surface, but let&amp;rsquo;s go a little deeper!</description>
    </item>
    
  </channel>
</rss>
