DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Newsletter
Log In / Join
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Related

  • Solving Interface Challenges With the BFF Pattern
  • Backend For Frontend (BFF) Pattern
  • Testing the Untestable and Other Anti-Patterns
  • Building Modern 3factor Apps in 2021 With Event-Driven Programming

Trending

  • How to Format Articles for DZone
  • A Field Guide to AI Agent Frameworks
  • Java 8 Optional - Avoid Null and NullPointerException Altogether - and Keep It Pretty
  • Building a Real Pipeline With senro: Monorepos, Caching, and Triggers

Draft This article hasn't been published, so readers can't see it.

In moderation This article is waiting for review, so readers can't see it yet.

Deleted This article has been deleted, so readers can't see it.

  1. DZone
  2. Software Design and Architecture
  3. Integration
  4. Architecture Anti-Patterns: The DARK Side of the Architect

Architecture Anti-Patterns: The DARK Side of the Architect

Shed light on the specters that haunt our architectural decisions and understand how to exorcise the demons that threaten our digital sanctuaries.

By 
Pier-Jean MALANDRINO
DZone Core CORE ·
Oct. 31, 23 · Analysis
Post on X (opens in a new tab) Share on LinkedIn (opens in a new tab)
4.5K Views

Join the DZone community Save articles, join the discussion, and download Refcards and Trend Reports with a free account.

Join for free Already a member? Log in

Amid the realm of logic and structured thought, architects, much like the mythical creatures of old, harbor a shadowy underside. Like the ancient legends where heroes have their flaws and palaces haunted chambers, architectural designs, no matter how splendid, possess pitfalls and lurking dangers. The illustrious facades of our software edifices can sometimes obscure the eerie passages and cobwebbed corners inherent within. Like everybody, architects have a dark side, a realm where patterns and practices, if not wielded with caution, can spiral into chilling tales of system horrors. In this paper, we shall venture into this enigmatic domain, shedding light on the specters that haunt our architectural decisions and understanding how to exorcise the demons that threaten our digital sanctuaries.

Multi-Tenant: The Haunted Mansion

The Overcrowded Ghost Party

Not separating tenant data appropriately can lead to data leaks between tenants, potentially violating data protection laws.

Frankenstein’s Maintenance

Customizations for specific tenants can make the codebase messy and hard to maintain, especially if they’re not modularized properly. Read more in my post, "Multi-Tenancy With Keycloak, Angular, and SpringBoot."

BFF (Backend For Frontend): The Phantom Layer

The Poltergeist Payload

Without optimization, BFF can result in over-fetching or under-fetching of data.

The Duplication Demon

Business logic can get duplicated across multiple BFFs serving different frontends. For more, see "Backend For Frontend (BFF) Pattern."

Outbox Pattern: The Ghostly Deliverer

Lost in the Phantom Zone

If the event publisher fails, messages might be stuck in the outbox.

Zombie Messages

Without proper deduplication mechanisms, consumers can process the same message multiple times.

For additional information, check out "The Outbox Pattern."

CQRS (Command Query Responsibility Segregation): The Split Soul

Eventual Horror

Eventual consistency can surprise developers not accustomed to it, leading to unpredictable system states.

The Two-Faced Monster

Having separate models for read and write can increase the complexity, requiring sync mechanisms.

For more, read "Architecture Patterns: Command Query Responsibility Segregation (CQRS)."

API Gateway: The Haunted Portal

The Bottleneck Banshee

If not properly scaled or optimized, it can become a performance bottleneck.

The Hexed Transformation

Over-reliance on the gateway for transformations can lead to monolithic configurations that are hard to manage.

For additional information, check out "Architecture Patterns: API Gateway."

Circuit Breaker: The Ghostly Protector

Premature Haunting

Misconfigured thresholds can cause the circuit to open too often, denying service even when the downstream service is healthy.

Ghoul’s Delay

If the reset interval is not optimized, it can result in extended outages.

Eternal Night’s Lock

In some ill-configured or neglected systems, a circuit breaker can remain open indefinitely. This can occur due to the absence of auto-reset mechanisms or continuous failures each time the circuit tries to close. As a result, the system remains in a permanent failure state, like a door that’s been haunted shut, preventing healthy operations even if the downstream service has recovered.

Conclusion: The Witch’s Brew 

Every architectural pattern, like a potion in a witch’s brew, has its ingredients and potential side effects. It’s the architect’s task to know the spells (patterns) well, be cautious of the dark corners, and apply them judiciously. Even the most powerful spells can backfire if not cast correctly. So, this Halloween, let’s respect the magic and mystery of our trade and watch out for those architectural ghouls and ghosts!

API Architectural pattern Architect (software) Anti-pattern Data Protection Directive

Opinions expressed by DZone contributors are their own.

Related

  • Solving Interface Challenges With the BFF Pattern
  • Backend For Frontend (BFF) Pattern
  • Testing the Untestable and Other Anti-Patterns
  • Building Modern 3factor Apps in 2021 With Event-Driven Programming

Partner Resources

×

Comments

Loading comments

The comments didn't load

Please try again in a moment.

Likes

Loading

The next likes didn't load. Please try again.

The likes didn't load

Please try again in a moment.

See who liked this

Log in or join DZone for free to see who liked this article.

Log in Join for free
  • RSS
  • X
  • Facebook

ABOUT US

  • About DZone
  • Support and feedback
  • Community research

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 215
  • Nashville, TN 37211
  • [email protected]

Let's be friends:

  • RSS
  • X
  • Facebook