Best of ArchitectureOctober 2023

  1. 1
    Article
    Avatar of dzDZone·3y

    Backend For Frontend (BFF) Pattern

    The Backend for Frontend (BFF) design pattern customizes backend services for specific frontends, enhancing efficiency and alignment with frontend needs. It involves creating a backend service layer specifically tailored to the requirements of a particular frontend application or a set of closely related frontends.

  2. 2
    Article
    Avatar of earthlyEarthly·3y

    Kafka vs RabbitMQ: What Are the Differences?

    Apache Kafka and RabbitMQ are popular distributed messaging systems with functionalities for real-time data processing, analytics, event-driven architectures, and more. Kafka is a distributed streaming platform with high throughput, low latency, and a publish-subscribe model. RabbitMQ is a message broker with support for multiple protocols and flexible routing capabilities. Kafka excels in real-time data processing, event sourcing, and log aggregation, while RabbitMQ is suitable for asynchronous communication, microservices communication, and IoT data ingestion.

  3. 3
    Article
    Avatar of ghblogGitHub Blog·3y

    The architecture of today’s LLM applications

    Learn about the architecture of today's LLM applications, including the steps to build an LLM app, choosing the right LLM, customizing the LLM, setting up the app's architecture, and conducting online evaluations. Discover real-world impact examples of LLM apps in use.

  4. 4
    Article
    Avatar of itnextITNEXT·3y

    SOLID in React: the good, the bad, and the awesome

    This article discusses how to apply SOLID principles in React, focusing on the Single Responsibility Principle, the Open/Closed Principle, the Liskov Substitution Principle, the Interface Segregation Principle, and the Dependency Inversion Principle. It explores the separation of components into managers and workers, the importance of extension over modification, the concept of substituting supertypes with subtypes, the principle of depending only on necessary properties, and the inversion of dependencies through component composition in React.

  5. 5
    Article
    Avatar of awsplainenglishAWS in Plain English·3y

    Easy Guide To Designing A 3 Tier Architecture

    This article provides a guide to designing a 3 tier architecture for an e-commerce platform. It explains the purpose of a 3 tier architecture and discusses the components of each tier. The article also mentions the use of a session manager for secure access and control over AWS instances.

  6. 6
    Article
    Avatar of itnextITNEXT·3y

    REST, GraphQL or RPC — A Decision Paralysis

    This article explores the different aspects of API design and compares the REST, GraphQL, and RPC patterns. It discusses the considerations for schema definition, data model complexity, data updates, data types, filtering/sorting/pagination, environment/tooling, observability/scalability, error handling, versioning, and access controls. The author suggests that RPC is the future of API design, particularly for addressing complex use cases and decoupling implementation and data storage concerns.

  7. 7
    Article
    Avatar of discdotDiscover .NET·3y

    Code Review & Refactoring to a Better Design

    The article discusses code review and refactoring to improve design. It addresses design decisions related to persistence ignorant queries, the usage of null, and throwing exceptions. It suggests using option types instead of null and exceptions for handling invalid values.

  8. 8
    Article
    Avatar of devgeniusDev Genius·3y

    Microservices Architecture with Node.js: Building Scalable and Robust Applications

    Microservices architecture involves breaking an application down into smaller, independent services that communicate with each other through APIs. Node.js is a popular choice for building microservices. The article provides a guide on setting up microservices architecture in Node.js using Seneca.js and explains how to connect microservices.

  9. 9
    Article
    Avatar of communityCommunity Picks·3y

    Migrating from Monolith to Microservices: Strategy & Step-by-Step Guide

    Migrating from monolith to microservices offers benefits such as enhanced scalability, agility, productivity, cost-efficiency, and fault tolerance. Companies like Netflix, Amazon, and Uber have successfully made the transition. However, there are challenges involved in the migration process, such as high initial costs, the need for experienced staff, and considerations for distributed systems.

  10. 10
    Article
    Avatar of inPlainEngHQPython in Plain English·3y

    🐍 Python Backend Project Advanced Setup (FastAPI Example)

    The article discusses the issues with the project structure layer in Python web frameworks, such as Django. It proposes a solution using a layered architecture and the repository pattern. The application structure is divided into different layers like presentation, application/operation, domain, and infrastructure. The repository pattern is implemented to provide a simple abstraction layer for database access.

  11. 11
    Article
    Avatar of milanjovanovicMilan Jovanović·3y

    CQRS Pattern With MediatR

    Learn how to use the CQRS pattern to build fast and scalable applications. CQRS separates writes and reads in an application, improving complexity management, performance, scalability, flexibility, and security. MediatR is a recommended tool for implementing CQRS.

  12. 12
    Article
    Avatar of systemdesignnewsSystem Design Newsletter·3y

    Wechat Architecture That Powers 1.67 Billion Monthly Users

    WeChat is a popular messaging app in China with 1.67 billion monthly active users. It started with 491 concurrent users and scaled up to over 400 million concurrent users. WeChat's development principle was to release first and then optimize. They used an asynchronous message queue for message delivery and restricted the number of people in a group chat to 500. WeChat's architecture includes an Access Layer, Logic Layer, and Storage Layer. They use C++ for their servers and communicate between services using Svrkit. The storage layer includes databases like MySQL and SDB, with Memcached for data access efficiency. WeChat also implemented the KVSvr algorithm on top of MySQL and SDB. They have multiple data centers, including Shanghai, Hong Kong, and Canada, and synchronize data between them using a Quorum-based queue

  13. 13
    Article
    Avatar of awstipAWS Tip·3y

    EC2 Auto-shutdown with Lambda

    Learn how to create an AWS Lambda function that automatically shuts down an EC2 instance when it's idle for more than 30 minutes. The article provides step-by-step instructions, including creating IAM policies and roles, setting up the Lambda function, creating triggers with Event Rule, identifying idle instances with a Python script, and testing and monitoring the lambda function.

  14. 14
    Article
    Avatar of discdotDiscover .NET·3y

    Events are an API. Treat them that way!