CloudEvents: A Specification for Interoperable Event Data
Events are ubiquitous in software development, but their various forms can create headaches for developers seeking to use or consume them across different platforms or services. CloudEvents offers a s...
Microservices: Rethinking the Way We Treat Data and Services
If you were to stumble upon the whole microservices thing, without any prior context, you’d be forgiven for thinking it a little strange. Yet, whilst the approach certainly involves many independent s...
Moving Beyond Monolithic Data Lakes to Distributed Data Mesh
Many enterprises invest in their next-gen data lake to democratize data, but common failure modes lead to unfulfilled promises at scale. Shifting from centralized paradigms to modern distributed archi...
Data Mesh Principles and Logical Architecture
Our aspiration to augment and improve every aspect of business and life with data, demands a paradigm shift in how we manage data at scale. While the technology advances of the past decade have addres...
Turning Microservices Inside-Out: Unbundling Databases and Utilizing Event Logs with Debezium
This article discusses the benefits and practicality of replacing relational databases with event logs for microservices architectures. Rather than replacing databases, the article suggests complement...
Turning Microservices Inside-Out
Learn from software leaders at early adopter companies on how they are adopting emerging trends at QCon New York (June 13-15, 2023). Explore topics such as architecture, design, AI/ML, data engineerin...
Accenture | Let There Be Change
Accenture is a global professional services company with expertise across a wide range of industries and services, including artificial intelligence, customer experience, digital transformation, cyber...
Domain-Driven Refactoring: Intro
A common trap in Domain-Driven Design is blindly applying patterns and complex layering with the hope of achieving clean code. However, no amount of prescriptive guidance results in automatically clea...
Message Routing in Dotnet 6
In this post, Joshua Steward builds on his previous work on background message processing in Dotnet 6 and introduces a new concept called MessageRouter. The post discusses how to route a single Intern...
Proto.Actor - Ultra-fast, distributed, cross-platform actors.
Proto.Actor is a minimalistic API for ultra-fast, distributed, cross-platform actors. It is built on existing technologies and uses Protobuf for serialization. The API is small and easy to use, avoidi...
Event-Driven Architecture with Apache Kafka for .NET Developers Part 1 - Event Producer
Learn how to implement an event-driven architecture using Apache Kafka as the event router. This article covers setting up the development environment and publishing messages to Kafka. Kafka is a hori...
Event-Driven Architecture with Apache Kafka for .NET Developers Part 2 - Event Consumer
In this article, the author discusses the implementation of an event consumer using Kafka for .NET developers with a specific focus on the Manager service. The article also covers the necessary NuGet ...
Graceterm - Tool for Zero Downtime Updates in Kubernetes
Graceterm is a middleware tool for AspNet Core that ensures graceful shutdown of the application. It was designed to achieve zero downtime while performing Kubernetes rolling updates. After receiving ...
Using Service Invocation from Dapr .NET SDK
In this post, Laurent Kempé explains how to invoke services using the Dapr .NET SDK. He compares two methods of invoking services - one using a simple .NET HttpClient and another using the Dapr .NET S...
C#s Functional Journey: How Object-Oriented Languages Have Adopted Functional Features
Mads Torgersen, lead designer of the C# language, discusses how the language has evolved over the past two decades, incorporating functional features inspired by the functional programming world. Torg...
C#s Functional Journey
Join world-class leaders pushing the boundaries of software at QCon San Francisco (Oct 2-6)! Attend in-person or online to find practical inspiration from the most innovative software pioneers. Discov...
Generating Tag cloud on Jekyll blog without plugin - Super Dev Resources
Jekyll doesn’t come with an out of box solution for generating Tag clouds, however with the support of Liquid markups and some basic CSS styling, we can generate Tag clouds ourselves without the need ...
Architecture Ownership Patterns For Team Topologies. Part 1: A Business Architecture Model
This article discusses the importance of determining which parts of a product, user experience, and technology each team owns while organizing technology teams to build digital products and services. ...
Architecture Ownership Patterns for Team Topologies. Part 2: Single Team Patterns
This article discusses the concept of slicing up a system and dividing responsibilities among teams in an organization. It proposes different patterns for single team ownership, such as product varian...
Architecture Ownership Patterns for Team Topologies. Part 3: Multi-Team Patterns
This article discusses the need for higher-order abstractions in businesses as they grow, and how grouping small numbers of teams into patterns can improve understanding, communication, and management...