Many of us spend most of their software development careers improving and extending applications protected by pre-existing security mechanisms. That’s why
we rarely address problems related directly to authentication and authorization unless we build apps from scratch.
Regardless of your experience I still hope you will find this article interesting.
It’s not meant to be a tutorial. I would like to focus on clarifying basic concepts and highlighting common misconceptions.
When you go through articles related to Hexagonal Architecture (HA) you usually search for practical examples.
HA isn’t simple, that’s why most trivial examples make readers even more confused, though it is not as complex as many
theoretical elucidations present it. In most posts you have to scroll through exact citations or rephrased definitions of concepts such as
Ports and Adapters or their conceptual diagrams. They have already been well defined and described by popular authors i.e.
Alistair Cockburn or Martin Fowler.
I assume you already have a general understanding of Domain Driven Design and that you understand terms such as Ports and Adapters.
I’m not a HA expert, yet I use it everyday and I find it useful. The only reason I write this post is to show you that Hexagonal Architecture makes sense, at least if your service is a little more than a JsonToDatabaseMapper.
Configuration management is one of the key challenges you have to face when you decide to build an application as a distributed system based on microservices
deployed to the Cloud. There are multiple ways of addressing different aspects of this problem, using several tools such as Spring Cloud Config Server
or Hashicorp Consul. However, this article will focus on the tools that Google Cloud Platform offers
out of the box. The approaches mentioned should be seen as complementary rather than mutually exclusive.
Karol is a software craftsman and data analysis enthusiast. His main interests lie in cloud distributed systems but he also sets his first steps in frontend development and data modelling.