• Latest
Keystone Interface and Keystone Flag

Keystone Interface and Keystone Flag

December 8, 2021
Koumajou Remilia: Scarlet Symphony Will Get An ‘Extra Easy Mode’ For Newcomers

Koumajou Remilia: Scarlet Symphony Will Get An ‘Extra Easy Mode’ For Newcomers

May 27, 2022
The Witcher 4 has entered pre-production, says CD Projekt

The Witcher 4 has entered pre-production, says CD Projekt

May 27, 2022
SteamOS 3.2 update adds refresh rate settings, quieter fan curve to the Steam Deck

SteamOS 3.2 update adds refresh rate settings, quieter fan curve to the Steam Deck

May 27, 2022
Cyberpunk 2077: PS5 and Xbox Series X/S Versions Are Out Now

Cyberpunk 2077 Expansion: Leak Points to Inaccessible Areas Being Opened

May 27, 2022
Nintendo Download: 27th May (Europe)

Nintendo Download: 27th May (Europe)

May 27, 2022
Minecraft’s The Wild update confirmed for June

Minecraft’s The Wild update confirmed for June

May 27, 2022
A solid option for Fuji!

A solid option for Fuji!

May 27, 2022
Honor shares details about the Magic4 Pro R&D process

Honor shares details about the Magic4 Pro R&D process

May 27, 2022
Xbox boss will “absolutely support” Raven Software’s new union

Xbox boss will “absolutely support” Raven Software’s new union

May 27, 2022
Pro Darts 2022+ Is Out Now on Apple Arcade Alongside Big Updates for Dear Reader, Crayola Create and Play+, Sonic Dash+, and Cut the Rope Remastered – TouchArcade

Pro Darts 2022+ Is Out Now on Apple Arcade Alongside Big Updates for Dear Reader, Crayola Create and Play+, Sonic Dash+, and Cut the Rope Remastered – TouchArcade

May 27, 2022
The Callisto Protocol distances itself from PUBG

The Callisto Protocol distances itself from PUBG

May 27, 2022
Realme unveils 512GB version of the GT Neo3, offers discounts for China’s 618 shopping festival

Realme unveils 512GB version of the GT Neo3, offers discounts for China’s 618 shopping festival

May 27, 2022
Advertise with us
Friday, May 27, 2022
Bookmarks
  • Login
  • Register
GetUpdated
  • Home
  • Game Updates
    • Mobile Gaming
    • Playstation News
    • Xbox News
    • Switch News
    • MMORPG
    • Game News
    • IGN
    • Retro Gaming
  • Tech News
    • Apple Updates
    • Jailbreak News
    • Mobile News
  • Software Development
  • Photography
  • Contact
    • Advertise With Us
    • About
No Result
View All Result
GetUpdated
No Result
View All Result
GetUpdated
No Result
View All Result
ADVERTISEMENT

Keystone Interface and Keystone Flag

December 8, 2021
in Software Development
Reading Time:3 mins read
0 0
0
Share on FacebookShare on WhatsAppShare on Twitter


As we all know, software developers may ease their development process by integrating their work as often as they can. It is also known that releasing frequently into production helps a lot. But developers and project stakeholders don’t want to expose half-developed features to their users. So, what happens in this case? 

A useful technique to deal with this issue is to build the backend, integrate, but don’t build the user interface. The feature can be integrated and tested, but the UI is held back with the help of a keystone ( more info you may find in Martin Fowler’s blog ) and added only when the feature is completed, showing it to the users.

Software development teams use feature flags a lot because they deliver a ton of value. Engineers can integrate their changes more frequently. Feature flags, for example, the Koople tool,  unlock capabilities like canary releasing, allowing teams to launch features safely.

As for the keystone flag, it is a pattern that helps to reduce the number of flag decision points for a feature by moving those decisions to the boundaries of the system.

Keystone Interface

The main idea behind the keystone interface is that you avoid long-lived feature branches by implementing a feature in a back-to-front way, exposing it in the user interface as the final step. This allows engineers to continuously merge their work into a shared integration branch without having that half-finished work exposed to any users. Once the feature is fully implemented, the software developer adds the interface – the keystone – which shows the feature to users.

Keystone Flag

Let’s see how the keystone interface can be used in event platforms where discount codes are needed. Discount is a simple concept to a consumer, however, it requires a lot of work behind the scenes. Software developers have to create internal user interfaces for creating and configuring discount codes, teach payment systems how to apply discounts, display discounts in orders, and so on. That “Add a discount code” UI is the keystone interface. Rather than leaving the keystone interface unimplemented, software developers can instead implement it but hide it behind a feature flag, with the flag off by default while the feature is still under development. This is a Keystone Flag – a feature flag protecting a keystone interface.

Keystone flags ensure that the half-finished feature isn’t exposed to our users, but internal users can access it for validation purposes – testing, showcasing, etc. Software developers can even do this testing in production if they want!

A keystone flag unlocks other opportunities beyond testing. Keystone flags also make releasing a feature safer in general. For example, imagine a scenario where the discount code functionality is implemented and tested, so it has been launched, turning on the feature for all users, but then developers discover a bug. It turns out that there is an issue with preventing the same discount code from being reused multiple times! Luckily, the UI to enter that discount code is still protected by a feature flag. Developers can very quickly disable the UI, preventing a massive loss in revenue. 

If developers hadn’t used a flag, they’d have to perform an emergency rollback – with all the risks that entail. Any discount code functionality further within the system doesn’t need to be directly managed by a flag – we can have it sit latently in production, confident that it won’t be exercised until we’re ready to expose it via the keystone interface.

This is what makes keystone flagging such a valuable practice – it delivers all the safety benefits of feature flagging while minimizing the cruft that those same feature flags can add to your code. 



Source link

ShareSendTweet
Previous Post

Facebook Page Setup Customization, Optimization & SEO

Next Post

iOS 15.2 shows a service history of repaired parts in your iPhone

Related Posts

Android App to Monitor Hudson – Part II Configurations

May 27, 2022
0
0
Android App to Monitor Hudson – Part II Configurations
Software Development

Last week, demonstrated building and Android application that queried Hudson remote api through REST calls, which returned back JSON objects;...

Read more

Announcing the JavaFXpert RIA Exemplar Challenge

May 27, 2022
0
0
Announcing the JavaFXpert RIA Exemplar Challenge
Software Development

I posed the question "Should There be Enterprise RIA Style Guidelines?" on JavaLobby in late 2008, and received some valuable...

Read more
Next Post
iOS 15.2 shows a service history of repaired parts in your iPhone

iOS 15.2 shows a service history of repaired parts in your iPhone

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

© 2021 GetUpdated – MW.

  • About
  • Advertise
  • Privacy & Policy
  • Terms & Conditions
  • Contact

No Result
View All Result
  • Home
  • Game Updates
    • Mobile Gaming
    • Playstation News
    • Xbox News
    • Switch News
    • MMORPG
    • Game News
    • IGN
    • Retro Gaming
  • Tech News
    • Apple Updates
    • Jailbreak News
    • Mobile News
  • Software Development
  • Photography
  • Contact
    • Advertise With Us
    • About

Welcome Back!

Login to your account below

Forgotten Password? Sign Up

Create New Account!

Fill the forms bellow to register

All fields are required. Log In

Retrieve your password

Please enter your username or email address to reset your password.

Log In
Are you sure want to unlock this post?
Unlock left : 0
Are you sure want to cancel subscription?