Event-Driven Architecture: 5 More Myths

In a previous post, I discussed what event-driven architecture (EDA) is and the common claims associated with it. Since EDA is not a common concept and has been around in the industry for over 20 years now (yes that's right!), it has accumulated a lot of claims associated with it and, over the years, some of these claims have been busted as myths or proven as facts.  

In this post, I will discuss 5 more claims about EDA and providing an argument as to whether each is a myth or a fact. Let's get started!

Design Implementation With App Development

Introduction

We’ve all been there when we have to manually redline our designs so developers know exactly what our perfect designs are actually showing; we have even tried sending over source files for our devs to use when implementing. But isn’t there a better way of sending over detailed design information? 

There are ways we can make markups easier and a way of disseminating this information quicker and more efficiently. This is of the utmost importance; if a developer doesn’t have all the information in front of them they will not spend precious time digging around for important information, a good handoff is a detailed project with information to hand or directly on top of the designs for quick implementation.

The Principles of Planning and Implementing Microservices

Planning a microservices-based application  —  where to start? This architecture is composed of many aspects; how to break down this decoupled architecture? I hope that after reading this article, the picture will be clearer.

Microservices architecture

The Gist

  • Why?
    • The reasoning for choosing microservices.
  • What to consider?
    • The planning considerations before moving to microservices (versioning, service discovery and registry, transactions, and resourcing)
  • How?
    • Implementation practices (resilience, communication patterns)
  • Who?
    • Understanding the data flow (logging, monitoring, and alerting)

Building a viable microservices solution is attributed to the technical platform and supporting tools. This article focuses on the technical foundations and principles without diving into the underlying tools and products that carry out the solution itself (Docker, Kubernetes or other containers orchestration tool, API Gateway, authentication, etc.).

How To Work Well Together: Designer and Developer Collaboration

A healthy designer-developer collaboration is one of the key ingredients in a software development recipe. A UX/UI designer’s job is to create the visual look and feel the concept of the product and for the developer to bring the design to life. Even though the two of them come from rather different domains, they both love to analyze and creatively solve problems. When this cross-functional duo collaborates effectively, they can achieve the impossible and build awesome products in the sphere of software development!

Design inspires technology and technology inspires design.

Best Practices in Software Development: Interface Overuse

“Program to interface, not to implementation” doesn't mean you should pair each and every one of your domain classes with a more or less identical interface. In doing so, you are violating YAGNI, and lowering the readability and maintainability of your codebase.

Extracting an interface from a class just so it has one, has this annoying feature that whenever you try to navigate using your IDE, you end up in the interface rather than the implementation itself. I see no practical use case in jumping to the signature declaration instead of the implementation itself. It’s annoying, a waste of time, a huge overkill, and completely useless, in general. What would you say to an experienced developer that adds an interface to a DTO class?!

Design Collaboration: Effective Approaches for Top-Notch Design

Creating digital products in this ever-competitive IT industry comes with its own sets of challenges. The creation of these digital products requires a team of multiple members that possess a unique set of skills, experience, and expertise. We at Peerbits, overcome these challenges and complexities with the help of design collaboration.

laptop stock image

Design collaboration is a smart and pragmatic approach that empowers all the experts to come together and create something top-notch.

A Closer Look at the Java Generic Factory Pattern

Read on to learn more about the Java generic factory pattern!

During my last project, I was required to build complex objects based on values derived from an XML File. We decided to use the Builder Pattern to help build complex objects.

For complex objects, which are aggregates of Domain-Driven Design, the building process, in the end, is a long method that builds all parts of the complex object. I was looking for a pattern that would allow me to create different components using only one method.