Redpanda Streamfest: Learn the latest in streaming data and AI (Sponsored)
Redpanda Streamfest is your best chance to learn the latest techniques and technologies for building data pipelines that support real-time applications, analytics and AI. Our half-day online streaming data conference includes more than a dozen technical talks, live demos and a hands-on workshop. Hear from streaming data experts at the New York Stock Exchange, Snowflake, Dun & Bradstreet, Clickhouse, Poolside, Qdrant, ShareChat, Cohere and more. Plus, you can take home the best swag in the business! Busy on Dec 12 and can’t make it? Register, and we’ll send you the on-demand recordings.
This week’s system design refresher:
How to Ace System Design Interviews Like a Boss?
My NEW book, Coding Interview Patterns, is now available on Amazon
Who are the Fantastic Four of System Design?
Unicast vs Broadcast vs Multicast vs Anycast
How Does VISA Make Money?
SPONSOR US
How to Ace System Design Interviews Like a Boss?
Follow this 7-step process to do well in a System Design Round
Requirements Clarification
In the first step, clarify functional and non-functional requirements. Ask questions to understand the core features of the system as well as non-functional aspects such as data volume, availability, scale, etc.Capacity Estimation
Next, estimate the capacity of the system. Focus on attributes like the number of users, traffic, storage/memory needs, and compute and networking requirements.Create High-Level Design
Break down the system into components such as client apps, servers, load balancers, databases, etc.
Start with drawing a simple block diagram that shows these components and their potential interaction with each other. Focus on the data flow.Database Design
Model the data and choose the right database type for the system. Once done, focus on the database schema.Interface Design
Next, focus on the interfaces to the system. This could be API endpoints or event models exchanged between the various components of the system. Also, choose a communication approach such as REST, GraphQL, gRPC, or an event-drivenScalability and Performance
Address the scalability, performance, and latency aspects of the system by suggesting techniques that will be used. For example, vertical and horizontal scaling, caching, indexing, denormalizing, sharding, replication, CDNs, etc.Reliability and Resiliency
Lastly, address the reliability and resiliency of the design. Identify single points of failure and mitigate their impact.
Over to you: What else would you add to the process?
Proactive performance monitoring using New Relic AI (Sponsored)
Managing complex technology stacks and ensuring continuous uptime are critical challenges for modern engineering teams. Reacting to issues after they occur often results in costly downtime and frustrated customers. The solution? Proactive performance monitoring. With New Relic AI, you can move from reactive to proactive monitoring by leveraging AI to foresee problems before they happen, identify trends, and resolve issues faster.
My NEW book, Coding Interview Patterns, is now available on Amazon
My new book, Coding Interview Patterns, is now available on Amazon!
I’ve been working on this book for 1.5 years with my co-author, Shaun Gunawardane.
Our goal is to help you understand the underlying patterns of each coding problem, so you don’t have to grind through 100s/1000s of them.
We’ve also included 1,000+ diagrams to help you quickly grasp the reasoning and logic behind a solution within 5–10 minutes.
I hope this book achieves its goal.
Who are the Fantastic Four of System Design?
Scalability, Availability, Reliability, and Performance.
They are the most critical components to crafting successful software systems.
Let’s look at each of them with implementation techniques:
Scalability
Scalability ensures that your application can handle more load without compromising performance.Availability
Availability makes sure that your application is always ready to serve the users and downtime is minimal.Reliability
Reliability is about building software that consistently delivers correct results.Performance
Performance is the ability of a system to carry out its tasks at an expected rate under peak load using available resources.
Over to you: What are the other pillars of system design and strategies you’ve come across?
Unicast vs Broadcast vs Multicast vs Anycast
These are 4 network communication methods you must know.
Unicast
Unique sender and a single receiver.
For example, communication between two people in a party.
Used in protocols such as HTTP, FTP, and SMTP.Broadcast
Single sender and multiple receivers.
For example, a person at a party stands up on a podium and shouts a message to everyone. However, it doesn’t mean that every receiver gets the message.
Used in Address Resolution Protocol, DHCP, and NTPMulticast
Sender to a specific group of devices in a network. This is a specialized case of broadcast routing.
For example, a member of the group talks and listens to other members of the group within a party.
Used in IPTV and video conference applications.Anycast
Sender to a single device or a specific group of devices.
For example, saying thank you to one host out of a group of hosts organizing a party. All other hosts also expected to receive the thank you note.
Used in DNS querying and CDNs.
Over to you: Which approach have you used?
How Does VISA Make Money?
Why is the credit card called “the most profitable product in banks”? How does VISA/Mastercard make money?
The diagram below shows the economics of the credit card payment flow.
1. The cardholder pays a merchant $100 to buy a product.
2. The merchant benefits from the use of the credit card with higher sales volume, and needs to compensate the issuer and the card network for providing the payment service. The acquiring bank sets a fee with the merchant, called the “merchant discount fee.”
3 - 4. The acquiring bank keeps $0.25 as the acquiring markup, and $1.75 is paid to the issuing bank as the interchange fee. The merchant discount fee should cover the interchange fee.
The interchange fee is set by the card network because it is less efficient for each issuing bank to negotiate fees with each merchant.
5. The card network sets up the network assessments and fees with each bank, which pays the card network for its services every month. For example, VISA charges a 0.11% assessment, plus a $0.0195 usage fee, for every swipe.
6. The cardholder pays the issuing bank for its services.
Why should the issuing bank be compensated?
The issuer pays the merchant even if the cardholder fails to pay the issuer.
The issuer pays the merchant before the cardholder pays the issuer.
The issuer has other operating costs, including managing customer accounts, providing statements, fraud detection, risk management, clearing & settlement, etc.
Over to you: Does the card network charge the same interchange fee for big merchants as for small merchants?
SPONSOR US
Get your product in front of more than 1,000,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 sponsorship@bytebytego.com.
I have issues with your subscription and trying to customer service
If you read the feedback
Please reach me