BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Design Pattern Content on InfoQ

  • Preventing Serverless Vendor Lock-in with Design Patterns

    Gregor Hohpe recently published an article proposing a paradigm shift to address vendor lock-in concerns on serverless cloud applications. Designing a solution using well-known patterns decouples its functional characteristics from the underlying cloud implementation, making it easier to avoid lock-in or to go multi-cloud.

  • Slack Implements Circuit Breakers to Improve CI/CD Pipeline Availability

    Slack recently published how it implemented the Circuit Breaker pattern to improve its CI/CD pipeline availability. Before this project, engineers at Slack saw challenges as peak request volumes in internal tooling caused cascade failures in dependent systems. Since completion, engineers saw increased service availability and fewer bad developer experiences like flakiness from failing services.

  • The Importance of Patterns in DDD

    There are lots of patterns outside of Domain-Driven Design (DDD) that are important to know, and they will help you design better systems, Cyrille Martraire claimed in his presentation at the recent DDD Europe Conference in Amsterdam when discussing the importance of patterns.

  • What Programmers Can Do to Write Better Code

    To write better code, programmers have to apply design fundamentals and read existing code, says Martin Thompson, a Java Champion and high-performance-computing specialist. InfoQ interviewed him after his Engineering You talk at QCon London 2016 about the challenges that the software industry is facing and what programmers can do to deal with those challenges and become better software engineers.

  • A Pattern for API Backends Serving Frontends

    The web experience through a mobile device differs in many ways from a desktop version with its smaller screen, limited data plans and need for fewer requests. A mobile device also requires different data and may provide other interactions, e.g. with a bar code reader. One solution is to have one API backend for each type of client, a Backend For Frontend (BFF), Sam Newman explains in a blog post.

  • Eric Evans on DDD, Microservices and Boundaries

    There is tremendous value in microservices, probably giving us the best environment we have ever had for doing Domain-Driven Design (DDD), Eric Evans stated in his keynote at this year’s DDD Exchange conference in London. Iteration is the most important key to good design and microservices is the second attempt, after SOA, to get things right.

  • Introducing IODA Architecture

    For Ralf Westphal common architectural patterns like Layered architecture, Hexagonal architecture and Clean architecture all look very similar giving a very crude idea of the structure of an application. Looking for another way of describing architecture Westphal has defined an architectural style, IODA Architecture, built on three formal responsibilities: Operation, Data and Integration.

  • Aggregates, Entities and Value Objects in Domain-Driven Design

    Move as much as possible of the behaviour away from the Entities into Value Objects when working with Aggregates, As more behaviour is needed this is added as new value objects, Paul Rayner recommends in a series of blog posts covering aggregates, entities and value objects, all concepts from Domain-Driven Design (DDD).

  • Architecture, Technology and the Lava Layer Anti-Pattern

    Successive changes to architecture and technology throughout the lifetime of an application can lead to a fragile and fragmented codebase that is hard to understand and maintain, an anti-pattern named Lava Flow or Lava Layer that Mike Hadlow often finds in enterprise software, especially in large, mission critical and long-lived software.

  • Exploring the Hexagonal Architecture

    Layered systems are an architectural style used essentially to avoid coupling, the biggest enemy of software maintainability, with Ports and Adapters, or a Hexagonal Architecture, an example of such an architecture, Ian Cooper explains in a presentation about architecture styles, specifically the Hexagonal Architecture.

  • Domain-Driven Design with Onion Architecture

    Domain-Driven Design (DDD) together with Onion Architecture is a combination that Wade Waldron believes has increased his code quality dramatically since he started using it a few years back. Using DDD was a kick-off but together with Onion architecture he found his code to be more readable and understandable, and far easier to maintain.

  • Java 8 Update 11 Broke Third Party Tools

    Oracle's latest update to Java, 8 update 11, introduced a breaking change that has affected a range of third-party tools, including JRebel, Groovy and Google's Guice library.

  • Protocol Design and Implementation with Martin Thompson

    Martin Thompson answers a few questions about the opportunity for developers and architects to introduce custom protocols to their system's interaction points.

  • Facebook: MVC Does Not Scale, Use Flux Instead [Updated]

    This article has been updated based on community and Jing Chen (Facebook)’s reaction. (See the Update section below.) Facebook came to the conclusion that MVC does not scale up for their needs and has decided to use a different pattern instead: Flux.

  • Object Oriented Design Principles and Functional Programming

    Independently from each other, Richard Warburton in a presentation, and Mark Seemann in a blog post both talks about object-orientation and the SOLID design principles from a functional programming perspective.

BT