Top Architecture Flexibility Tips

  • 14 June 2021
  • 1 reply

Userlevel 1
Badge +2

What’s the single most important thing someone needs to know about flexible architecture?


If you could give a single, solitary piece of advice about building apps, backends or systems, one stand-out thing to keep in mind when building a flexible system architecture, what would it be and why?

1 reply

Userlevel 1
Badge +2

My Top Tip:

Never assume a unique key is unchangeable unless it’s randomly generated.



Because even things that seem unique can be subject to change.


Let me explain

I am having trouble logging into a project management tool, because Sauce Labs changed my email address.

Let me explain.  My email address was  To standardise across the company, our IT team changed these older (or legacy, I guess) email addresses to be  Pretty standard, right? 

That change went across the board, including our SSO service.  Almost everything works fine… except this tool, which now can’t find my account because my SSO service is requesting it by my old email address.  I can update my profile’s address, but apparently the SSO implementation they’re using has it’s own key, and it’s still set to first_name@.  I’ve had to raise a ticket asking them to update it.

Here are some ‘unique, identifying’ data which can change:

  • Last names (Marriage, divorce, deed poll)
  • First names (Transitions, deed poll)
  • Social Security Numbers
  • Email addresses
  • Phone Numbers

It’s almost always better to generate a unique internal ID, and treat the other fields as mutable.