Architecture
Viewing all posts categorized under Architecture.
Timeline
Filter by Year
Apache Spark 1.4: Introducing DataFrames and Spark SQL for Distributed Datasets
Analyzing the release of Apache Spark 1.4 in mid-2015. We break down the new DataFrame API, the Catalyst optimizer, and Spark SQL query execution.
Rust 1.0 Release: Memory Safety Without a Garbage Collector Runtime
Exploring the Rust 1.0 release in May 2015. We detail the mechanics of the ownership model, borrow checker validation, and memory safety.
GraphQL Open Source Release: Replacing REST with Single-Endpoint Queries
Analyzing Facebook's open-source release of GraphQL in early 2015. We detail the type schema, client queries, and the end of over-fetching.
Go 1.5 Self-Hosting Compiler: Eliminating C Dependencies from the Runtime
Analyzing the Go 1.5 compiler update. We study the transition of the runtime from C to pure Go, garbage collection improvements, and self-compilation.
Microservices Architecture: Orchestrating Netflix OSS Eureka and Zuul Gateways
Analyzing the adoption of microservices architectures in early 2015, focusing on service discovery using Netflix Eureka and Zuul routing proxies.
HTTP/2 Standard Approval: The End of Domain Sharding and Sprite Optimization
Exploring the formal approval of HTTP/2 in January 2015. We detail the mechanics of multiplexed TCP streams and the death of legacy front-end hacks.
Immutable Infrastructure: Creating Machine Images with Packer and Terraform
Exploring the rise of Terraform in late 2014, detailing immutable infrastructure patterns and machine builds with Packer.
REST API Versioning: Comparing URI, Header, and Query Parameter Strategies
A comparative review of REST API versioning strategies in mid-2014, comparing URI paths, headers, and query parameters.
ASP.NET vNext: Designing a Cross-Platform, Modular .NET Runtime for Cloud
Exploring the announced ASP.NET vNext in mid-2014, detailing the decoupling of the .NET runtime to run cross-platform on Linux.
Java 8: Lambda Expressions, Streams API, and the End of PermGen Memory
An in-depth review of Java 8 released in March 2014. We analyze lambda syntax, the Streams API, and the replacement of PermGen with Metaspace.
Kubernetes: Container Orchestration and Cluster Scheduling for Cloud Services
Analyzing the announcement of Kubernetes by Google in mid-2014, detailing Borg clustering mechanics and container scheduling.
SQL Server 2014 In-Memory OLTP: Speeding Up Writes with Hekaton Tables
An architectural review of SQL Server 2014's Hekaton In-Memory OLTP engine, analyzing lock-free index structures and compiled queries.
Database Sharding Patterns: Architecting Horizontal Scale-Out for Web SaaS
An architectural guide to database sharding for SaaS platforms in late 2013, detailing sharding algorithms and query coordination.
Reactive Extensions (Rx) in C#: Asynchronous Event Stream Processing
A technical guide to Microsoft's Reactive Extensions (Rx) in C# in late 2013. We analyze event streaming, query operators, and concurrency rules.
Clustered Columnstore Indexes in SQL Server 2014: Columnar Storage for OLAP Databases
Exploring the announced Clustered Columnstore Indexes in SQL Server 2014, detailing read-write optimizations and data compression.
Designing RESTful APIs: Standardizing JSON Status Codes, Hypermedia, and CORS
A guide to standardizing RESTful APIs in mid-2013, detailing clean HTTP status code usages, JSON schemas, and CORS security headers.
Cross-Site Request Forgery (CSRF): Understanding Tokens and Double-Submit Cookie Mitigations
A security guide to mitigating CSRF attacks in mid-2013. We analyze session hijacks and evaluate anti-forgery token architectures.
Hadoop 2.0 YARN: Splitting Resource Management from MapReduce Computation
An architectural review of YARN in Hadoop 2.0, detailing how splitting resource allocation from execution enables multi-tenant clusters.
MongoDB Replica Set Elections: Maintaining High Availability During Primary Node Failures
An architectural review of MongoDB replica set election mechanics in early 2013, analyzing heartbeat windows, quorum calculations, and write concerns.
Real-time Data: Why Apache Spark is Replacing MapReduce Batching
An architectural review of Apache Spark in late 2012, analyzing Resilient Distributed Datasets (RDD) and in-memory processing speeds.