
Sign up to save your podcasts
Or


Johannes Thönes talks to Barry O'Reilly, principal consultant at ThoughtWorks, about his recently published book Lean Enterprise. A lean enterprise is a large organization that manages to keep innovating while keeping its existing products in the market. O'Reilly talks about the idea of scientific experiments and the build-measure-learn loop popularized by the lean-startup method. He shares his experiment of an online wine seller using Twitter. He further discusses the challenges for enterprises trying to do something similar and introduce the three-horizon model, to manage innovative, growing, and new products. As an example of a successful lean enterprise, O'Reilly talks about GOV.UK, the British government's new website.
Fangjin Yang, creator of the Druid real-time analytical database, talks with Robert Blumen. They discuss the OLAP (online analytical processing) domain, OLAP concepts (hypercube, dimension, metric, and pivot), types of OLAP queries (roll-up, drill-down, and slicing and dicing), use cases for OLAP by organizations, the OLAP store's position in the enterprise workflow, what "real time" means in the analytics context, and the relationship between real-time analytics and the Lambda architecture. They then move on to Druid itself: a high-level view, the challenges of implementing real-time analytics, and major application domains for Druid. They also discuss ad-tech and real-time analytics and real-time analytics as an operational tool. Yang then addresses Druid internals: node types, the special handling of the time dimension, the Druid query language, and the relationship between SQL and OLAP. Closing topics are the Druid open source project, community contributions, and the size and scale of some of the larger Druid clusters.
Stefan Tilkov talks to Mark Nottingham, chair of the IETF (Internet Engineering Task Force) HTTP Working Group and Internet standards veteran, about HTTP/2, the new version of the Web's core protocol. The discussion provides a glimpse behind the process of building standards. Topics covered include the history of HTTP versions, differences among those versions, and the relation of HTTP/2 to Google's SPDY open networking protocol. Mark goes into detail about HTTP/2's technical features, including binary framing, improved connection handling, server push, and the different protocol negotiation approaches. The episode concludes with a look at the consequences of HTTP/2 availability and adoption, especially regarding the various hacks that are best practices with HTTP/1.1.
Joshua Suereth and Matthew Farwell discuss SBT (Simple Build Tool) and their new book SBT in Action. They first look at the factors creating a need for build systems and why they think SBT—a new addition to this area—is a valuable contribution in spite of the vast number of existing build tools. Host Tobias Kaatz, Joshua, and Matthew then discuss how parallel execution of highly customizable tasks can both solve complex build problems and cause issues for programmers who aren't used to working in such an environment. The remainder of the show covers dependency management, and especially the influence of Apache Ivy. The host and guests compare SBT to other build systems (Ant, Maven and Gradle) and examine how SBT deals with external libraries and why a new approach using Aether might be the best way to go.
Shubhra Kar of StrongLoop talks to Jeff Meyerson about Node.js. Node allows for server-side JavaScript. Shubra and Jeff explore why Node is so important from three standpoints: isomorphic JavaScript, the single-threaded-concurrency model, and the "API economy." Isomorphic JavaScript apps have their own control and viewing logic, but they share the state and specification of the models between client and server. Node's single-threaded event loop concurrency model is ideal for Web programming, where time is traditionally wasted while waiting on I/O. The API economy is dominated by JSON (JavaScript Object Notation), which Node treats as the first-class data model. Shubhra also discusses the changing landscape of the client-server model in a conversation about Browserify, which creates a directory structure in the browser, allowing for conflict management between client and server. Other topics discussed include MongoDB, model-driven development, and V8.
Flavio Junqueira is the author of Zookeeper: Distributed Process Coordination. Flavio and Jeff Meyerson begin by defining ZooKeeper and talking about what ZooKeeper is and isn't. ZooKeeper can be thought of as a patch against certain fallacies of distributed computing: that the network is secure, has zero latency, has infinite bandwidth, and so on. With ZooKeeper, a programmer can be insulated from these problems or at least have a tool to better manage them. More concisely, ZooKeeper is a coordination kernel. It's a set of primitives that abstracts away coordination, leader election, and other troublesome aspects of maintaining a distributed system. Flavio also discusses scaling ZooKeeper, the CAP theorem, and contrasting distributed tools such as Chubby.
Simon Brown, author of Software Architecture for Developers, talks with Sven Johann about using simple sketches to visualize, communicate and document software architecture. The show starts with a consideration of why sketches are more useful than UML and then continues with the explanation of the C4 model (context, containers, components and classes) and how it fits Shneiderman's mantra. Next Brown discusses why the code never matches the diagrams, how frameworks are guilty of this, and what you can do to let the code scream the architecture at you. Finally, it's all about how to create a useful documentation which can also easily maintained and browsed.
Robert Blumen talks with Eric Brewer, who discovered the CAP (consistency, availability, partition tolerance) theorem. The first part of the show focuses on Brewer's original thesis presented at the 2000 ACM Symposium on Principles of Distributed Computing (PODC): What set of problems motivated the formulation of CAP? How was it understood at the time? What are the three types of systems that can exist (or are there only two types)? Is latency the same as a partition? The second half of the show covers Brewer's more recent retrospective article on how things have changed since then: What major insights about CAP have emerged? How has CAP impacted the architecture of real applications? How can architects use the full space of the CAP theorem to arrive at the best designs? Are some types of systems more CAP-friendly? How do CAP systems recover when partitions are healed? The show wraps up with some speculation about the next 16 years.
Eberhard Wolff talks with Eric Evans, the founder of domain-driven design (DDD), about its impact after 10 years. DDD consists of domain-modelling patterns; it has established itself as a sound approach for designing systems with complex requirements. The show covers an introduction to DDD, how the community's understanding of DDD has changed in the last 10 years, the often overlooked component—strategic design, how to use DDD to design microservices, and the connection between microservices and the DDD bounded context. DDD originated during the era of object orientation and relational databases; the show concludes with a look at the recent impact of functional programming and NoSQL on DDD.
Senior performance architect and author of *Systems Performance* Brendan Gregg talks with Robert Blumen about systems performance: how the hardware and OS layers affect application behavior. The discussion covers the scope of systems performance, systems performance in the software life cycle, the role of performance analysis in architecture, methodologies for solving performance problems, dynamic tracing and tracing tools such as DTrace, the disk and file subsystems, the CPU and memory subsystems, and the challenges virtualization poses for performance analysts.
From the publisher's feed