EP94: REST API Cheatsheet

EP94: REST API Cheatsheet

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  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌
Forwarded this email? Subscribe here for more

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.

Request early access


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.

No alt text provided for this image

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.

Schedule a demo to learn more

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

graphical user interface, diagram, application

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.

No alt text provided for this image
  • 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

No alt text provided for this image
  • 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

 
Like
Comment
Restack
 

© 2024 ByteByteGo
548 Market Street PMB 72296, San Francisco, CA 94104
Unsubscribe

Get the appStart writing


by "ByteByteGo" <bytebytego@substack.com> - 11:36 - 13 Jan 2024