BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Development Content on InfoQ

  • The C4 Model for Software Architecture

    Software architecture diagrams can be a very useful communication tool, but many teams have scaled back on the creation of diagrams, and when diagrams are created, they are often confusing and unclear. The C4 model consists of a hierarchical set of software architecture diagrams for context, containers, components, and code.

  • The SOA Journey: from Understanding Business to Agile Architecture

     If your monolith is tightly coupled and not cohesive, you could split it in order for a business to be more agile.  There are a lot of wrong ways that you can do that. They result in the same tightly coupled and non-cohesive monolith, but which is distributed across a network. This article examines how you can align your technical services and business-capabilities.

  • Can People Trust the Automated Decisions Made by Algorithms?

    The use of automated decision making is increasing. These algorithms can produce results that are incomprehensible, or socially undesirable. How can we determine the safety of algorithms in devices if we cannot understand them? Public fears about the inability to foresee adverse consequences has impeded technologies such as nuclear energy and genetically modified crops.

  • Istio and the Future of Service Meshes

    A service mesh provides a transparent and language-independent way to flexibly and easily automate networking, security, and observation functions. This article examines the past, present and future of the Istio service mesh. The near-term goal is to launch Istio to 1.0, when the key features will all be in beta, including support for Hybrid environments.

  • Default Interface Methods in C# 8

    Default interface methods are included in a new feature proposal for C# 8, which will allow developers to use the traits programming technique. Based on an existing language feature found in Java, traits are an OOP technology that promotes the reuse of methods between unrelated classes.

  • Democratizing Stream Processing with Apache Kafka and KSQL - Part 1

    In this article, author Michael Noll discusses the stream processing with KSQL, the streaming SQL engine for Apache Kafka. Topics covered include challenges of stateful stream processing and how KSQL addresses them, and how KSQL helps to bridge the world of streams and databases through streams and tables.

  • Refactoring to Eclipse Collections: Making Your Java Streams Leaner, Meaner, and Cleaner

    Eclipse Collections is a high performance collections framework for Java, adding rich functionality to the native JDK Collections. In this article, key framework contributors demonstrate techniques for refactoring standard Java code to Eclipse Collections data structures and APIs, and also demonstrate some of the memory savings you can achieve.

  • Picking an Active-Active Geo Distribution Strategy: Comparing Merge Replication and CRDT

    Modern distributed applications are fuelling the growing demand for distributed active-active, multi-master databases. While most popular databases support multi-master deployment, different databases employ different techniques. LWW, MVCC, merge replication and CRDTs deliver eventual consistency, offering read and write access with local latency and remaining available during network partitions.

  • Understanding the Varieties of .NET

    The goal of this article is not to go too deeply into the technical details of the different .NETs; plenty of technical resources are available, and pointers to some of them are provided. Rather the goal here is to answer a simple question: Which variety of .NET should you use in a given situation?

  • Ballerina Tutorial: A Programming Language for Integration

    Ballerina is a new programming language and platform whose objective is to make it easy to create resilient services that integrate and orchestrate across distributed endpoints. Ballerina’s design principles focus on baking integration concepts into a language, including a network-aware type system, sequence diagrammatic syntax, concurrency workers, being “DevOps ready”, and environment awareness.

  • Advanced Architecture for ASP.NET Core Web API

    This article looks into how ASP.NET Core makes it easy to build a modern web API. This enables an implementation that is easy to design, test, and maintain. By using the Ports and Adapter Pattern business logic can be decoupled from API frameworks and data access.

  • How to Deal with Open Source Vulnerabilities

    Despite the shockwaves following the Equifax hack in September 2017, the industry still has a long way to go in protecting their products. A key area to focus on is the open source components that comprise 60-80% of the code base in modern applications. Learn how to detect vulnerable open source components and keep your products secure.

BT