Software Architecture in Golang: Anti-Corruption Layer Pattern

Опубликовано: 06 Октябрь 2024
на канале: Mario Carrion
4,231
120

What is the Anticorruption Layer pattern? The Anti-corruption layer pattern was first introduced by Eric Evans in his book Domain-Driven Design back in 2003 and it is described as an isolation layer created to consume values from other system, acting as a translation layer in both directions, between our downstream model and the external upstream model; it's used to clearly define boundaries between two different systems.

This layer allows our system to interact with another one without being affected (or corrupted) by their design, keeping our system completely isolated from foreign concepts. The Anti-Corruption Layer is typically implemented using a combination of the facade and adapter design patterns.

== Relevant Links

■ Domain-Driven Design: Tackling Complexity in the Heart of Software (affiliate link): https://amzn.to/3sfn5D0
■ Software Architecture in Go/Golang:    • Software Architecture and System Desi...  
■ Example code: https://github.com/MarioCarrion/video...
■ Blog Post: https://mariocarrion.com/2022/05/06/g...

== All Go/Golang Playlists

■ Learning Relational Databases in Go/Golang:    • Learning Go/Golang: Relational Databases  
■ Building Microservices in Go/Golang:    • Building Microservices in Golang/Go  
■ Go/Golang Tools and Packages:    • Golang/Go Tools and Packages  
■ Learning Concurrency Patterns in Go/Golang:    • Learning Go/Golang Concurrency Patterns  
■ Learning Go/Golang :    • Learning Go/Golang  
■ Testing in Go/Golang:    • Testing in Golang/Go  

== Socials

■   / mariocarrion  
■   / mariocarrion  
■   / mario.carrion  

00:00 - Introduction to Anti-corruption Layer Pattern
00:54 - Example in Golang of Anti-corruption Layer Pattern
05:38 - Conclusion

=== Who am I?

Hello👋🏼! I'm Mario, a Hands-on Software Architect and Lead Backend Engineer with decades of professional experience building all kinds of software including on-premise Industrial Automation Systems, Linux Accessibility Desktop and Browser Components as well as Distributed Advertising Microservices.

Every week I will share with you different topics I've learned while working for small startups and large companies including the processes I've followed over the years for successfully delivering complex enterprise systems from start to end.

Subscribe if you like Software Development, Software Architecture and Systems Design!

Keep it up. Don't give up!

#golang #softwarearchitecture #systemdesign

=== Our Vlog Channel

   / rubycarrion  

=== Affiliate links

■ Amazon Shop 🛒 https://www.amazon.com/shop/rubycarrion
■ Technical/Non-technical Books - Recommended by Mario Carrion 📚 https://www.amazon.com/shop/rubycarri...

DISCLAIMER: Some of the links shared above are affiliate links. As a member of these affiliate programs, I earn a small commission from your purchases at no additional cost to you. Thank you in advance for your support!