ReleaseToggles
Stable Version 1.0.0
Published on 22 Sep by 
Created on 22 Sep
Details
This application provides an implementation of release toggles in OutSystems. Release toggles are meant to hide/reveal features of an application in runtime. Bringing unfinished or not-yet-accepted features into production is no longer a problem.
Read More
This application provides an implementation of release toggles in OutSystems. The inspiration for this solution came from a blog post by Pete Hodgson on Martin Fowler's website . Read it if you want to delve into all the different ways into which toggles are being used in software in general. The problem it tries to solve... The sprint is done, the product owner has accepted everything. The changes go for user acceptance but only part of the functionality gets approved. You want to bring what is approved into production but the other functionality should not be made available. What to do? Release toggles to the rescue :) If each functionality is guarded by a release toggle we can reveal or hide functionality in runtime. Therefore, all changes can go into production and only some of the release toggles are turned on. How it works... The release toggles are defined in an Excel file, the releasetoggles.xlsx resource. If you need to add, update or delete release toggles you have to download this file, do the necessary changes, upload it with the same name and publish the module. All changes to the file will be taken over and put in the database. For each release toggle, you create a public action that states whether the release toggle is on or off. This application comes with a couple of examples. Just copy-paste those and do the necessary changes. These actions are the ones you use in your application to make sure that you can hide/reveal part of the functionality. By having a single public action for each release toggle, it becomes easy to delete a release toggle. All you need to do is to delete the action from this application and fix all the modules that got broken by removing the if-constructs with a call to this action. Alongside, remove all the code that was on the false branch of the if-construct. Suggestions... Delete a release toggle as soon as the functionality it guards is in production. Try to keep the number of release toggles as small as possible. After all, release toggle checks increase the complexity of your code. Side notes... - By default, release toggles are turned off. This means that when you add a release toggle, it is turned off until you turn it on. In addition, when you bring this module to another environment, all release toggles will be off unless they were already present in that environment and turned on. - If a release toggle is deleted from the releasetoggles.xlsx file, it will be deleted from the database upon deployment of this module. There is no undo possible. - More often than not, release notes are implemented using site properties. This has some disadvantages. As they are commonly spread throughout multiple modules, it is difficult to have an overview of all release toggles in use. In addition, sometimes the same release toggle is represented by site properties in multiple modules. Turning it on means having to go through all of these modules and change the site property value accordingly. Keeping all of these in synch is quite a challenge. Sometimes the a release toggle is on or off depending on multiple factors. This is not possible to do while using site properties.
Reviews (0)
Category
Components, Libraries, Samples & How-tos
Support Options
This component is not supported by OutSystems. You may use the discussion forums to leave suggestions or obtain best-effort support from the community, including from Pedro Rodrigues who created this component.
Dependencies
See all 2 dependencies
Requirements
Platform
10.0.0.402
Database
All
Stack
All
Component Consumers
ReleaseToggles has no consumers.
Weekly Downloads 
Related Components
Google Drive Connector
OutSystems R&D
Google Drive Connector allows your OutSystems Applications to use the Google Drive REST API to interact with your files.
1004
OutSystems UI Mobile
OutSystems R&D
Create amazing native mobile applications using this fully integrated UI framework for OutSystems, with dozens of UI patterns ready to use.
7354
Google Maps
Labs
Google Maps is a Google Maps Javascript V3 API component, providing Web Blocks and Actions to add interactive maps, markers and directions, along with event driven functionality.
10686
More from Pedro Rodrigues
IntroJs_Mobile
Pedro Rodrigues
Port to mobile of the IntroJs_Library component that makes it possible to provide a visual step-by-step guide to an app feature.
BaseConversionsDemo
Pedro Rodrigues
A simple application to exemplify how to use the actions made available by the extension BaseConversions. The application shows how it is possible to convert a number in a given base into another base. In addition, it also shows the conversion from a number in a given base into binary data and vice-versa.
Countdown Mobile
CountdownMobileTeam
A simple countdown clock full customized, that counts down the days, hours, minutes and seconds that are left to a date of your choice. Translation to mobile from Countdown Clock component by Paulo Ramos.