10 Software Architecture Patterns in Enterprise Software Development
In this article, JIN discusses ten software architecture patterns that are commonly used in enterprise software development. The article begins by explaining the importance of software architecture an...
Monacs.Sample - Sample project for Monacs library
This is a sample project showcasing the Monacs library. Monacs is a library that provides a monadic approach to handling errors and side effects in your code. With Monacs, you can easily and safely co...
Avoiding Downtime in Rolling Deployments by Blocking SIGTERM
This post discusses the problem of seeing 502 error responses from your applications when theyre being upgraded using a rolling-upgrade deployment in Kubernetes. After upgrading a chart, and confirmin...
Dont Do That, Do This: The .NET 6 Edition
This post is my annual contribution to the 2021 C# Advent Calendar. .NET 6 has officially arrived and there are a lot of good stuff, including C# 10, performance improvements, Hot Reload, and Minimal ...
Awesome Software Architecture
This is a comprehensive guide to software architecture, covering a wide range of topics including Actor Model Architecture, Akka .NET, Orleans, Protoactor, Clean Architecture, Onion Architecture, Hexa...
Implementing the microservice application layer using the Web API
Learn how to Implement the microservice application layer using the Web API in this article. The application layer can be implemented as part of the artifact (assembly) you are building, such as withi...
How to Build an Event-Driven ASP.NET Core Microservice Architecture
Learn how to use RabbitMQ, C#, REST-API, and Entity Framework to build an event-driven microservice architecture that supports asynchronous decoupled communication and eventual consistency with integr...
Resizing Ubuntu disk in Parallels
How to resize Ubuntu disk in Parallels
C# Channels - Async Data Pipelines
In this article, learn how to efficiently process data in a non-blocking way using the pipeline pattern. Compose and test pipelines using .NETs channels, and see how to cancel and handle errors. Imple...
Pipelines for C#
Pipelines is a library for implementing programs as Pipeline objects in C#. This library is inspired by Arlo Belshees talk, Refactoring to Async. Pipelines are a mechanism of separating a function tha...
Marrying RESTful HTTP with Asynchronous and Event-Driven Services
Building a successful microservice platform requires integrating disparate services and systems to produce a unified set of functionality, which can be achieved by using different communication styles...
Object Calisthenics: Principles for Better Object-Oriented Code
Ready to up your coding game? Object Calisthenics will help you create code that is cleaner, more flexible, more agile, and more reusable. Object Calisthenics were first introduced by Jeff Bay in The ...
The Outbox Pattern in Event-Driven ASP.NET Core Microservice Architectures
Learn how to build a resilient architecture with RabbitMQ, C#, Entity Framework, and the Transactional Outbox Pattern. In this guide, you will create two microservices that use events to publish chang...
Software Architecture Patterns: Basics and Benefits Explained
In this 4-minute read, Orkhan Huseynli introduces the five basic software architecture patterns and their benefits. He delves into layered architecture, event-driven architecture, microkernel architec...
Using Azure Cosmos Persistence with NServiceBus
NServiceBus is a reliable messaging and workflow solution for the .NET platform that supports various queuing technology and datastore such as Cosmos DB. Cosmos DB is a fully managed NoSQL database se...
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...