Best of ArchitectureJune 2024

  1. 1
    Article
    Avatar of javarevisitedJavarevisited·2y

    40 Must Read Engineering Blogs to Learn System Design and Software Architecture in 2024

    To master system design and software architecture, it's not enough to just understand concepts; practical application and learning from real-world examples are crucial. Reading engineering blogs from top tech companies like Netflix, Uber, and Google offers valuable insights into solving complex problems, employing cutting-edge technologies, and following industry best practices. These blogs provide deep dives into actual cases and innovative solutions. To maximize learning, start with relevant blogs, focus on common patterns, and apply the knowledge practically.

  2. 2
    Article
    Avatar of techworld-with-milanTech World With Milan·2y

    Documenting Software Architectures

    Mastering software architecture documentation is crucial for effective communication among stakeholders and maintaining alignment across the software development lifecycle. The post discusses the arc42 template and C4 model for organizing and visualizing architecture documentation. The arc42 template provides a structured approach to documenting architectural decisions, while the C4 model helps visualize different levels of system abstraction. Combining these techniques with tools like Structurizr and AsciiDoc enables version control and automation, ensuring up-to-date and easily accessible documentation.

  3. 3
    Article
    Avatar of bytebytegoByteByteGo·2y

    EP118: What are the differences among database locks?

    Database locks are mechanisms to ensure data integrity and consistency by preventing concurrent access. Common types include Shared Lock, Exclusive Lock, Update Lock, Schema Lock, Bulk Update Lock, Key-Range Lock, Row-Level Lock, Page-Level Lock, and Table-Level Lock. Pagination in API design addresses large datasets with techniques like offset-based, cursor-based, page-based, keyset-based, time-based, and hybrid pagination. Further highlights cover architecture patterns (MVC, MVP, MVVM, MVVM-C, VIPER) and web browsing process from typing a URL to loading a webpage.

  4. 4
    Article
    Avatar of devtoDEV·2y

    Write SOLID React Hooks

    Learn how to apply SOLID principles to React hooks, including the Single Responsibility Principle, Open/Closed Principle, Liskov Substitution Principle, Interface Segregation Principle, and Dependency Inversion Principle.

  5. 5
    Article
    Avatar of devtoDEV·2y

    Implementing Caching Strategies: Techniques for High-Performance Web Apps

    The post explores various caching strategies crucial for high-performance web applications. It covers policies like Write Through, Write Around, Write Behind, and Read Through, outlining their benefits and best use scenarios. Additionally, it introduces different caching strategies such as LRU, LFU, FIFO, and others, highlighting their appropriate use cases in development frameworks like Django and Spring Boot.

  6. 6
    Article
    Avatar of communityCommunity Picks·2y

    How Does Facebook Manage to Serve Billions of Users Daily?

    Understanding how Facebook manages to serve billions of users daily involves exploring their use of caching systems, particularly Memcache. Cache stores data to anticipate future requests, enabling quicker data retrieval compared to databases. Facebook's Memcache optimizes performance through techniques like parallel requests with DAG, batching requests, and leasing to prevent stale data and manage heavy loads. These strategies allow efficient handling of massive user requests while maintaining data integrity.

  7. 7
    Article
    Avatar of communityCommunity Picks·2y

    API Design: From Basics to Best Practices

    Learn about API design principles, understand different types of APIs, and discover best practices for creating efficient, secure, and easy-to-use interfaces.

  8. 8
    Article
    Avatar of communityCommunity Picks·2y

    The Power of MVC Pattern Explained Simply

    The MVC (Model-View-Controller) pattern is a widely-used architectural design that divides an application into three layers: Model, View, and Controller. This separation helps maintain a clear data flow and makes the development process more efficient by allowing frontend and backend developers to focus on their specific areas. The post explains the roles of the model (handling business logic), view (user interface), and controller (mediator between model and view). Using a restaurant analogy, the post illustrates these roles and highlights the importance of MVC in reducing potential problems in complex projects. Examples and code snippets in PHP are provided to help understand the implementation.

  9. 9
    Article
    Avatar of systemdesigncodexSystem Design Codex·2y

    3 Types of Event Patterns in EDA

    Event-Driven Architecture (EDA) revolves around components sending and receiving events to communicate. There are three primary event patterns: Event Notifications, which inform other components of an occurrence with minimal data; Event-Based State Transfer, where events containing necessary information are pushed to consuming components; and Event Sourcing, which involves storing and replaying events to reconstruct entity states. Each pattern offers unique advantages for different scenarios.

  10. 10
    Article
    Avatar of communityCommunity Picks·2y

    Common Anti-Patterns in Go Web Applications

    Web applications in Go face challenges of maintainability primarily due to strong coupling and misuse of principles like DRY (Don't Repeat Yourself). The post discusses how loose coupling can help maintainability and elaborates on common anti-patterns such as the Distributed Monolith and Single Model anti-pattern. It suggests tactics like separating models for API and storage, generating repetitive boilerplate code, and keeping business logic separate from implementation details to enhance code maintainability and clarity.

  11. 11
    Article
    Avatar of newstackThe New Stack·2y

    The 5 Worst Anti-Patterns in API Management

    API management poses unique challenges, especially when scaling services across different developer teams. Key anti-patterns to avoid include centralizing too many responsibilities, choosing over-complicated solutions prematurely, neglecting fully infrastructure-as-code practices, inconsistent versioning, and poor dependency management. Following best practices for API governance, gradual implementation, consistent versioning, and meticulous dependency management can ensure more predictable, reliable, and efficient operations.

  12. 12
    Article
    Avatar of communityCommunity Picks·2y

    DDD or not DDD ?

    Domain Driven Design is a recommended approach for developing large systems with complex business logic. It focuses on defining boundaries and modeling the actual domain rather than relying solely on patterns. Transaction Script and Table Module are examples of domain logic patterns that can be used in smaller applications with less complexity.

  13. 13
    Article
    Avatar of freecodecampfreeCodeCamp·2y

    How Auto Scaling and Load Balancing Work in Software Architecture

    This post explains how auto scaling and load balancing work in software architecture, and highlights their importance for handling unpredictable changes in demand. It also provides examples of architectures using auto scaling and load balancing.

  14. 14
    Article
    Avatar of communityCommunity Picks·2y

    10+ Scalability Laws To Follow In Your Next Project.

    Understanding scalability is crucial for software development. Key strategies include overestimating expected users, using caching to improve efficiency, breaking down software into modular components, implementing asynchronous I/O operations, and employing load balancing to distribute traffic. Fault tolerance, database sharding, and microservices architecture enhance system robustness. Monitoring, choosing the right technology, and favoring horizontal over vertical scaling are also essential for maintaining performance as the user base grows.

  15. 15
    Article
    Avatar of communityCommunity Picks·2y

    Beware! Anti-patterns in Event-Driven Architecture

    The post discusses anti-patterns in event-driven architecture, including leaking internals, the distinction between commands and events, the importance of explicit events for workflow, the limitations of ordered event processing, and why queries are not suitable for event-driven architecture.

  16. 16
    Article
    Avatar of communityCommunity Picks·2y

    SimpleDB: A Basic RDBMS Built From Scratch

    Learn how SimpleDB, a basic RDBMS, was built from scratch. Explore its architecture, data storage and access methods, operators, query optimization, and transaction handling. Discover potential improvements for SimpleDB.

  17. 17
    Article
    Avatar of telerikTelerik·2y

    React Basics: Microfrontend vs. Monorepos

    Explore the concepts of micro-frontends and monorepos, their pros and cons, and how they can work together. Micro-frontends are independently deliverable frontend application features composed to create a whole application, while monorepos store code for multiple projects in the same repository.

  18. 18
    Article
    Avatar of communityCommunity Picks·2y

    You probably don’t need microservices

    Microservices offer benefits like scalability and independent team operations, but also bring added complexity and costs. The post discusses real-world examples where companies faced challenges like high maintenance overhead, performance issues, and complexity in managing numerous services. Before adopting microservices, consider if they are the right fit for your organization, as sometimes simpler architectures like monoliths may be more effective.

  19. 19
    Article
    Avatar of baeldungBaeldung·2y

    Vertical Slice Architecture

    Learn about Vertical Slice Architecture and how it addresses the limitations of Layered Architecture by organizing code by business capabilities. This approach improves code expressiveness, coupling, and cohesion, while providing flexibility for diverse design paradigms. Examples using Spring Boot demonstrate the application of this architecture.

  20. 20
    Article
    Avatar of neo4jneo4j·2y

    Graph vs. Vector RAG — Benchmarking, Optimization Levers, and a Financial Analysis Example

    Exploring the use of graph and vector search in retrieval-augmented generation (RAG) systems, focusing on their application in financial analysis. Discusses the differences between graph and vector search, optimization levers for graph search, and the combination of both methods in RAG. Highlights the benefits of graph databases for modeling complex relationships and dependencies, as well as the limitations and complementarity of vector search. Demonstrates the application of graph and vector search in a financial report RAG example.

  21. 21
    Article
    Avatar of javarevisitedJavarevisited·2y

    Is Grokking Microservices Design Patterns course on DesignGuru.io worth it?

    The post discusses the Grokking Microservices Design Patterns course on DesignGuru.io. It highlights the importance of learning microservices design patterns for addressing challenges in Microservices architecture, facilitating team collaboration, and preparing for modern cloud-native application development.

  22. 22
    Article
    Avatar of architectelevatorThe Architect Elevator·2y

    Old Books that Every Architect Should Read

    Exploring books every architect should read, this post spans works from ancient Roman architecture to seminal books on software architecture. Titles discussed include Vitruvius' 'De architectura', Shaw and Garlan’s 'Software Architecture' from 1996, and Norman's 'The Design of Everyday Things'. Key insights and recommendations are shared to enrich the reader's bookshelf and understanding of architectural concepts across various eras.

  23. 23
    Article
    Avatar of medium_jsMedium·2y

    10 Software Engineering Lessons from Transforming our Appointment Search

    The post shares 10 essential software engineering lessons learned from developing an advanced appointment search system at Doctolib. Key insights include understanding legacy code via product questions, using multiple caching strategies, maintaining high cohesion and low coupling in code, avoiding circular dependencies, and utilizing various release strategies. These lessons aim to improve project implementation, debugging processes, and overall software performance.

  24. 24
    Article
    Avatar of hnHacker News·2y

    ExectOS Operating System

    ExectOS is a modern, open-source operating system designed from scratch with a focus on stability, flexibility, and compatibility with existing software. It features the XT architecture, derived from NT, with a modular design that integrates hardware-specific code with the kernel. ExectOS aims to bring the best features from existing systems while allowing for significant innovation and flexibility. It supports x86 and x86_64 architectures and aims to maintain driver compatibility even when the core system is updated.

  25. 25
    Article
    Avatar of nordicapisNordic APIs·2y

    Using Backstage to Catalog Your APIs

    Backstage is an open-source tool that can be used to improve internal DevOps processes and serve as a catalog for internal APIs. It has been adopted by thousands of companies, including Traveloka, to centralize and standardize API contracts and documentation, accelerating development and avoiding bottlenecks.