Architecture
376 bites tagged Architecture — interview questions with model answers, and 60-second explainers.
Boyce-Codd Normal Form (BCNF): Stricter Than 3NF
BCNF is a database design rule stricter than 3NF, ensuring no attribute is determined by anything but a superkey. It's used to eliminate all data redundancies from functional dependencies, but can force trade-offs with dependency preservation.
Codd's 12 Rules: The Relational Database Litmus Test
Codd's 12 Rules are a litmus test for whether a database is truly "relational." They demand that all data and operations be managed purely through the relational model, not through lower-level system access.
Database Views: A Saved Query That Acts Like a Table
A database view is a saved query you interact with like a real table. It simplifies complex joins for applications or restricts data access for security, showing only specific rows or columns.
Database Index: The Phonebook for Your Data
An index is like a book's index, letting you jump to the right row without scanning the whole table. It's essential for columns used in WHERE clauses, but over-indexing slows writes since every index must be updated on data changes.
Foreign Keys: The Glue of Relational Databases
A foreign key is a pointer from one table to another, linking related data like a user to their posts. It enforces referential integrity, ensuring a post can't exist without a valid user. The footgun is forgetting this blocks deletions of referenced records.
Database Normalization: Tidy Tables, Less Redundancy
Database normalization organizes data into smaller, related tables to eliminate redundancy, like separating addresses from orders. It's the standard for transactional (OLTP) systems where data integrity is critical.
ACID: The Four Guarantees of Database Transactions
ACID is a contract for database transactions: all-or-nothing guarantees for data validity, even during crashes. It's critical for relational databases in finance or e-commerce. The footgun is assuming all databases offer this; many NoSQL systems don't.
The Relational Model: Data as Simple Tables
The relational model organizes data into simple tables (relations) of rows (tuples), forming the foundation of SQL databases. It's used for structured data where consistency is critical, like in banking.
Primary Keys: The Unique ID for Every Row
A primary key is like a social security number for a database row, uniquely identifying it. It's used to reliably fetch records and link related data across tables. The footgun is using a natural key, like an email address, that might change over time.
DBMS: The Software That Runs Your Database
A DBMS is the software engine that manages a database, separating your app from raw data files. You use it to query, update, and administer data, like with PostgreSQL or MySQL. The common footgun is confusing the DBMS with the database itself.
Streaming Ingestion: Catching Data as It Happens
Streaming ingestion is a conveyor belt for data, catching events as they happen instead of in batches. It's used for real-time fraud detection and IoT monitoring. The footgun is confusing ingestion (getting data in) with processing (acting on it).
Atomic CSS: Styling with Single-Purpose Utilities
Atomic CSS builds interfaces with tiny, single-purpose classes directly in your HTML, like using LEGO bricks for styling. It's the core of frameworks like Tailwind CSS, letting you build UIs without writing custom CSS. The footgun is creating unreadable HTML.
Architectural Decision Records (ADRs): Documenting 'Why'
An ADR is a short text file capturing the 'why' behind a key engineering choice. Use it for big decisions like choosing a library or defining a core pattern.
The RFC Process: Formalizing Technical Decisions
An RFC (Request for Comments) is a formal document for proposing a major technical change, creating a public record of the decision. It's used for big shifts like adding a new design system component or changing a core API.
ITCSS: Structuring CSS from General to Specific
ITCSS organizes CSS from generic to specific, like an inverted triangle. It's for large projects to prevent specificity wars and make code predictable. The main footgun is not enforcing the layer order, which leads back to styling chaos and defeats the system.
SMACSS: A Naming Convention for CSS Scalability
SMACSS organizes CSS into five categories to prevent spaghetti code. It's a naming convention and thought process, not a library you install. It's used in large codebases where teams need a shared vocabulary for styling components.
GoogLeNet's Inception Module: Wider, Not Just Deeper
Instead of choosing one filter size, GoogLeNet's Inception module runs 1x1, 3x3, and 5x5 convolutions in parallel. This lets the network capture features at multiple scales at once. The footgun is forgetting the crucial 1x1 'bottleneck' convolutions.
The Sidecar Pattern: Offload and Isolate Application Logic
The Sidecar Pattern attaches a helper container to your main application, like a sidecar on a motorcycle. It offloads tasks like logging or proxying, letting you add features without changing the main app's code. The footgun is over-engineering a solution.
What is Cloud Native Architecture?
Cloud Native refers to a collection of practices and open-source projects, like Kubernetes, governed by the CNCF. It's used by enterprises to build modern products and services.
Cloud Landing Zone: A Blueprint for Cloud Environments
A Cloud Landing Zone is a pre-configured, secure foundation for your cloud applications, like a city grid with utilities ready for new buildings. It provides shared services like networking and identity, ensuring consistency for large organizations.
AWS Well-Architected Framework: A Blueprint for Cloud Health
Think of it as a pre-flight checklist for your cloud architecture. It provides a consistent way to evaluate your systems against six pillars—like security and cost optimization—to ensure they are sound.
The 6 R's: Your Playbook for Cloud Migration
The 6 R's are a strategic menu for migrating apps to the cloud. When planning a move, you use it to decide whether to simply 'Rehost' an app, 'Refactor' it for performance, or even 'Retire' it.
Data Virtualization: One Query, Many Sources
Data virtualization creates a single logical database from many physical sources without moving the data. It's used for real-time integration across silos like SQL, NoSQL, and APIs.
Lambda Architecture: Batch and Stream for Big Data
Lambda Architecture splits data into two paths: a slow, comprehensive batch layer and a fast, real-time stream layer. It's used in big data systems needing both historical accuracy and live views.
Get Architecture bites daily.
Five a day, five minutes, offline. With quizzes so it sticks.
Open testing — you’ll join as an early tester.