This week’s system design refresher:
Everything You NEED to Know About Client Architecture Patterns (Youtube video)
REST API Cheatsheet
How Does a Typical Push Notification System Work?
Top 4 Most Popular Use Cases for UDP
Top 8 Programming Paradigms
SPONSOR US
Introducing New Relic AI Monitoring (AIM), the industry’s first APM for AI (Sponsored)
New Relic AIM provides unprecedented visibility and insights to engineers and developers who are modernizing their tech stacks. With AIM, engineering teams can monitor, alert, debug, and root-cause AI-powered applications.
Everything You NEED to Know About Client Architecture Patterns
REST API Cheatsheet
This guide is designed to help you understand the world of RESTful APIs in a clear and engaging way.
What's inside:
An exploration of the six fundamental principles of REST API design.
Insights into key components such as HTTP methods, protocols, versioning, and more.
A special focus on practical aspects like pagination, filtering, and endpoint design.
Whether you're beginning your API journey or looking to refresh your knowledge, this blog and cheat sheet combo is the perfect toolkit for success.
Get 80% automated end-to-end test coverage in 4 months (Sponsored)
Traditional QA solutions take years to scale, and high test coverage is never guaranteed. QA Wolf gets web apps to 80% automated end-to-end test coverage in 4 months. They will create and maintain your test suite in open-source Playwright (no vendor lock-in, you own the code), and provide unlimited parallel test runs on their infrastructure.
The best part: QA Wolf saves you money. They are saving Salesloft $750k/year on QA engineering and infrastructure by executing 300+ tests in parallel on every PR.
PS: QA Wolf has a 4.8/5 🌟 rating on G2
How Does a Typical Push Notification System Work?
The diagram below shows the architecture of a notification system that covers major notification channels:
In-App notifications
Email notifications
SMS and OTP notifications
Social media pushes
Let’s walk through the steps.
Steps 1.1 and 1.2 - The business services send notifications to the notification gateway. The gateway can handle two modes: one mode receives one notification each time, and the other receives notifications in batches.
Steps 2, 2.1, and 2.2 - The notification gateway forwards the notifications to the distribution service, where the messages are validated, formatted, and scheduled based on settings. The notification template repository allows users to pre-define the message format. The channel preference repository allows users to pre-define the preferred delivery channels.
Step 3 - The notifications are then sent to the routers, normally message queues.
Step 4 - The channel services communicate with various internal and external delivery channels, including in-app notifications, email delivery, SMS delivery, and social media apps.
Steps 5 and 6 - The delivery metrics are captured by the notification tracking and analytics service, where the operations team can view the analytical reports and improve user experiences.
Top 4 Most Popular Use Cases for UDP
UDP (User Datagram Protocol) is used in various software architectures for its simplicity, speed, and low overhead compared to other protocols like TCP.
Live Video Streaming
Many VoIP and video conferencing applications leverage UDP due to its lower overhead and ability to tolerate packet loss. Real-time communication benefits from UDP's reduced latency compared to TCP.DNS
DNS (Domain Name Service) queries typically use UDP for their fast and lightweight nature. Although DNS can also use TCP for large responses or zone transfers, most queries are handled via UDP.Market Data Multicast
In low-latency trading, UDP is utilized for efficient market data delivery to multiple recipients simultaneously.IoT
UDP is often used in IoT devices for communications, sending small packets of data between devices.
Top 8 Programming Paradigms
Imperative Programming
Imperative programming describes a sequence of steps that change the program’s state. Languages like C, C++, Java, Python (to an extent), and many others support imperative programming styles.Declarative Programming
Declarative programming emphasizes expressing logic and functionalities without describing the control flow explicitly. Functional programming is a popular form of declarative programming.Object-Oriented Programming (OOP)
Object-oriented programming (OOP) revolves around the concept of objects, which encapsulate data (attributes) and behavior (methods or functions). Common object-oriented programming languages include Java, C++, Python, Ruby, and C#.Aspect-Oriented Programming (AOP)
Aspect-oriented programming (AOP) aims to modularize concerns that cut across multiple parts of a software system. AspectJ is one of the most well-known AOP frameworks that extends Java with AOP capabilities.Functional Programming
Functional Programming (FP) treats computation as the evaluation of mathematical functions and emphasizes the use of immutable data and declarative expressions. Languages like Haskell, Lisp, Erlang, and some features in languages like JavaScript, Python, and Scala support functional programming paradigms.Reactive Programming
Reactive Programming deals with asynchronous data streams and the propagation of changes. Event-driven applications, and streaming data processing applications benefit from reactive programming.Generic Programming
Generic Programming aims at creating reusable, flexible, and type-independent code by allowing algorithms and data structures to be written without specifying the types they will operate on. Generic programming is extensively used in libraries and frameworks to create data structures like lists, stacks, queues, and algorithms like sorting, searching.Concurrent Programming
Concurrent Programming deals with the execution of multiple tasks or processes simultaneously, improving performance and resource utilization. Concurrent programming is utilized in various applications, including multi-threaded servers, parallel processing, concurrent web servers, and high-performance computing.
SPONSOR US
Get your product in front of more than 500,000 tech professionals.
Our newsletter puts your products and services directly in front of an audience that matters - hundreds of thousands of engineering leaders and senior engineers - who have influence over significant tech decisions and big purchases.
Space Fills Up Fast - Reserve Today
Ad spots typically sell out about 4 weeks in advance. To ensure your ad reaches this influential audience, reserve your space now by emailing hi@bytebytego.com
The link to the REST API cheat sheet directs me to subscribe to ByteByteGo and when I log in I’m shown my active subscription. How do I access the actual cheat sheet article?
Beautiful gif👍How to make it, use which tool