This week’s system design interview:
Python Vs C++ Vs Java! (Youtube video)
Explaining 9 types of API testing
API Vs SDK!
System Design for Everyone!
Explain the Top 6 Use Cases of Object Stores
How to Build Your Engineering Metrics Program (Guide) (Sponsored)
While sales and marketing have clear, well understood dashboards, engineering insight often feels just out of reach.
Structuring and correlating engineering data with a metrics program provides holistic visibility into engineering health, fosters delivery predictability, improves dev experience, and helps you communicate with the rest of the business in a common language.
Use this free guide to start your metrics program–inside you’ll learn to:
Identify leading and lagging indicators of engineering health
Benchmark metrics and define “good” for your team
Surface risk indicators and improvement opportunities
Build an improvement strategy with automation and goal setting
Python Vs C++ Vs Java!
Explaining 9 types of API testing
Smoke Testing
This is done after API development is complete. Simply validate if the APIs are working and nothing breaks.Functional Testing
This creates a test plan based on the functional requirements and compares the results with the expected results.Integration Testing
This test combines several API calls to perform end-to-end tests. The intra-service communications and data transmissions are tested.Regression Testing
This test ensures that bug fixes or new features shouldn’t break the existing behaviors of APIs.Load Testing
This tests applications’ performance by simulating different loads. Then we can calculate the capacity of the application.Stress Testing
We deliberately create high loads to the APIs and test if the APIs are able to function normally.Security Testing
This tests the APIs against all possible external threats.UI Testing
This tests the UI interactions with the APIs to make sure the data can be displayed properly.Fuzz Testing
This injects invalid or unexpected input data into the API and tries to crash the API. In this way, it identifies the API vulnerabilities.
Latest articles
If you’re not a subscriber, here’s what you missed this month.
The 6 Most Impactful Ways Redis is Used in Production Systems
The Tech Promotion Algorithm: A Structured Guide to Moving Up
To receive all the full articles and support ByteByteGo, consider subscribing:
API Vs SDK!
API (Application Programming Interface) and SDK (Software Development Kit) are essential tools in the software development world, but they serve distinct purposes:
API:
An API is a set of rules and protocols that allows different software applications and services to communicate with each other.
It defines how software components should interact.
Facilitates data exchange and functionality access between software components.
Typically consists of endpoints, requests, and responses.
SDK:
An SDK is a comprehensive package of tools, libraries, sample code, and documentation that assists developers in building applications for a particular platform, framework, or hardware.
Offers higher-level abstractions, simplifying development for a specific platform.
Tailored to specific platforms or frameworks, ensuring compatibility and optimal performance on that platform.
Offer access to advanced features and capabilities specific to the platform, which might be otherwise challenging to implement from scratch.
The choice between APIs and SDKs depends on the development goals and requirements of the project.
Over to you:
Which do you find yourself gravitating towards – APIs or SDKs – Every implementation has a unique story to tell. What's yours?
System Design for Everyone!
We've open-sourced the 'System Design 101' GitHub repo last week, which has just reached 35,000 stars.
Thanks to everyone who has starred, forked, or contributed to the repository. We got our 1st GitHub badge!
We are actively working on improving it and have merged 15 pull requests last week. Everyone is welcome to contribute.
What's included in the GitHub repository:
100 byte-sized system concepts with visuals.
Real-world case studies.
Tips on how to prepare for system design interviews.
Topics included (and many many more):
SOAP vs. REST vs. GraphQL vs. RPC
HTTP 1.0 -> HTTP 1.1 -> HTTP 2.0 -> HTTP 3.0 (QUIC)
CI/CD Pipeline Explained in Simple Terms
8 Data Structures That Power Your Databases
Top caching strategies
What does a typical microservice architecture look like?
Start exploring the repository here.
Explain the Top 6 Use Cases of Object Stores
What is an object store?
Object store uses objects to store data. Compared with file storage which uses a hierarchical structure to store files, or block storage which divides files into equal block sizes, object storage stores metadata together with the objects. Typical products include AWS S3, Google Cloud Storage, and Azure Blob Storage.
An object store provides flexibility in formats and scales easily.Case 1: Data Archiving
With the ever-growing amounts of business data, we cannot store all the data in core storage systems. We need to have layers of storage plan. An object store can be used to archive old data that exists for auditing or client statements. This is a cost-effective approach.Case 2: Unstructured Data Storage
We often need to deal with unstructured data or semi-structured data. In the past, they were usually stored as blobs in the relational database, which was quite inefficient. An object store is a good match for music, video files, and text documents. Companies like Spotify or Netflix uses object store to persist their media files.Case 3: Cloud Native Storage
For cloud-native applications, we need the data storage system to be flexible and scalable. Major public cloud providers have easy API access to their object store products and can be used for economical storage choices.Case 4: Data Lake
There are many types of data in a distributed system. An object store-backed data lake provides a good place for different business lines to dump their data for later analytics or machine learning. The efficient reads and writes of the object store facilitate more steps down the data processing pipeline, including ETL(Extract-Transform-Load) or constructing a data warehouse.Case 5: Internet of Things (IoT)
IoT sensors produce all kinds of data. An object store can store this type of time series and later run analytics or AI algorithms on them. Major public cloud providers provide pipelines to ingest raw IoT data into the object store.Case 6: Backup and Recovery
An object store can be used to store database or file system backups. Later, the backups can be loaded for fast recovery. This improves the system’s availability.
Over to you: What did you use object store for?
I think using HTTP to describe API is quite misleading, even thought a service can provides one of their APIs throught HTTP, especially "3. Typically consists of endpoints, requests, and responses.".
If I would try to describe API it would be "a contract exposed by an application/library as a layer to their internal, managed components".
These digestable explanations are great, keep them coming... I'm sure they are helping lots of people untangle complex topics.
I've love to see an update to the API testing list to include API Contract Testing (inc Consumer-driven Contract testing) and API Policy Testing. At the moment it looks like "app testing" approaches renamed as "API testing" approaches.