Skip to content
Home » Software Architecture » Page 2

Software Architecture

Software architecture refers to the high-level structure of a software system and the discipline of creating such structures. It is the blueprint for a software project and involves the description of the system’s components, their relationships, and the guidelines governing their design and evolution over time. These components may include software applications, data, services, and infrastructure. Key aspects include functionality, performance, resilience, reuse, comprehensibility, and scalability. The role of a software architect involves making strategic decisions related to the system design, such as choosing the right architectural styles (e.g., client-server, peer-to-peer, microservices), patterns, and technologies. Effective software architecture plays a critical role in achieving the technical and business goals of a software system.

What is a Non-Repeatable Read Anomaly?

Non-Repeatable Read is a database anomaly that occurs in the context of transactions, which are sequences of database operations that should behave as single, indivisible units of work. Non-Repeatable Read happens when a transaction reads the same row twice, and gets different data each time. This is usually due to another transaction modifying the data after the first read. In this post, we look at this concept in detail and techniques to address this.

Understanding SQL Database Isolation Levels

Database isolation is a property that defines how and when the changes made by one operation become visible to other concurrent operations. Isolation is one of the ACID (Atomicity, Consistency, Isolation, Durability) properties.
In this post, we will look at 4 standard isolation levels along with some database-specific ones.

What is ACID in database systems?

ACID is a fundamental concept in database systems, standing for Atomicity, Consistency, Isolation, and Durability. These properties ensure reliable processing of database transactions. ACID Properties of Database Systems Atomicity Atomicity ensures that a transaction is treated as a single, indivisible… Read More »What is ACID in database systems?

SQL Injection: Describe what it is with examples

A SQL Injection is a code injection technique that attackers use to exploit vulnerabilities in a web application’s database layer. This vulnerability is often present in a web application when user input is incorrectly filtered for string literals that are used in SQL statements, or when user input is not strongly typed and can unexpectedly execute SQL commands.

The technique allows an attacker to manipulate SQL queries that an application makes to its database, enabling the attacker to view, alter, or delete data that they are not normally authorized to access.

Database Sharding and its Challenges

Database sharding is a powerful technique employed to manage large databases more effectively. It involves partitioning a large database into smaller, more manageable parts, known as shards. The term “shard” signifies a small fragment of a whole, aptly describing this method of breaking down a large database into smaller, more manageable pieces.

Understanding etcd: The Distributed Key-Value Store

etcd is a distributed, reliable key-value store developed by CoreOS that’s designed for shared configuration and service discovery. It is a central component in distributed systems and enables you to store and retrieve data across a cluster of machines.