From 3744662a3db6fd58edd8f11715acb0d5c446b7e5 Mon Sep 17 00:00:00 2001 From: Kamran Zafar Date: Thu, 12 Nov 2026 18:20:02 +1100 Subject: [PATCH 1/4] Draft: Feature Toggles in Java, Without the If-Else --- .../index.md | 339 ++++++++++++++++++ .../preview.jpg | Bin 0 -> 105695 bytes 2 files changed, 339 insertions(+) create mode 100644 draft/feature-toggles-in-java-without-the-if-else/index.md create mode 100644 draft/feature-toggles-in-java-without-the-if-else/preview.jpg diff --git a/draft/feature-toggles-in-java-without-the-if-else/index.md b/draft/feature-toggles-in-java-without-the-if-else/index.md new file mode 100644 index 000000000..4cf30c0a1 --- /dev/null +++ b/draft/feature-toggles-in-java-without-the-if-else/index.md @@ -0,0 +1,339 @@ +--- +title: "Feature Toggles in Java, Without the If-Else" +date: "2026-01-01" +description: "Why the usual if-else feature toggle turns into debt, how to design toggles cleanly in Java, and how Flipjack moves the decision out of your code." +authors: + - "kamran-zafar" +image: "preview.jpg" +categories: + - "Java" + - "Spring" + - "Design Patterns" +related_posts: + - "cloud-agnostic-microservices-with-halyx" +canonical: "https://kamranzafar.org/blog/2026/10/30/feature-toggles-in-java-without-the-if-else/" +--- + +> Feature toggles are meant to make releases safer. Written the usual way, they also make the code worse, one `if` at a time. + +Almost every team I've worked with in the last decade uses feature toggles in some form. They let you merge unfinished work into trunk, switch a new pricing engine on for staging but not production, roll something out to a handful of tenants first, and turn off a misbehaving feature at 2am without a redeploy. None of that is controversial. + +What I've found much less talked about is what toggles do to the codebase over time. Most guides, and most library getting-started pages, teach the same pattern, and that pattern is where the trouble starts. + +## The pattern everyone starts with + +```java +public Quote quote(Cart cart) { + if (features.isEnabled("new-pricing")) { + return newPricingEngine.quote(cart); + } else { + return legacyPricing.quote(cart); + } +} +``` + +It looks harmless. It is one condition, the intent is obvious, and it ships today. The problems show up in month six. + +## The problems with feature toggling + +### 1. The condition spreads + +A feature is rarely one method. The new pricing engine also changes discounts, the quote PDF, the confirmation email and the audit record. Each of those gets its own `if (features.isEnabled("new-pricing"))`, often in different classes written by different people. The toggle is no longer a switch; it is a pattern smeared across the codebase, and nobody can say with certainty where all the copies are. + +### 2. Two toggles make four paths + +Toggles combine. A method that checks `checkout-v2` and then `express-shipping` has four behaviours, and three toggles in one flow have eight. Each combination is a code path that has to be reasoned about and tested, and in practice most of them never are. The bugs live in the combination nobody thought to turn on in staging. + +### 3. Strings fail silently + +`isEnabled("new-pricng")` compiles, runs, and returns the default. There is no error, no warning, just a feature that mysteriously never turns on in production, or worse, one that is meant to be off and isn't, because the default was `true`. + +### 4. Removal is archaeology + +The toggle was supposed to be temporary. Once the feature is fully rolled out, someone has to find every check, delete the `else` branch, delete the old code it called, and hope nothing else depended on it. Because that work is tedious and risky, it doesn't happen. Stale toggles pile up, and with them dead code that still has to compile, still shows up in searches, and still confuses the next person. + +### 5. Business logic becomes infrastructure-aware + +The method that calculates a quote now knows about a toggle service, which means its unit tests need a toggle service, which means mocks, which means every test that touches pricing has to decide what state `new-pricing` is in. The concern that should be operational (*which version runs right now?*) has leaked into the domain. + +### 6. The toggle source becomes a dependency on the hot path + +If `isEnabled` calls a remote flag service, a database or a config store, every business call now depends on that system being up and fast. When it isn't, what happens? Does the call throw? Does it return `false`? Does it return whatever the last caller saw? Most code using the pattern above never makes a decision about this, so the answer is whatever the client library happens to do. + +## What the current libraries give you + +The Java ecosystem has mature options: **Togglz**, **FF4J**, **Unleash**, and hosted services such as **LaunchDarkly** and **Harness Feature Management**. They are good at what they focus on: storing flags, administration consoles, user and percentage targeting, audit logs, and in the hosted case, governance and analytics. + +But look at the first code sample in almost any of their docs and you'll find some version of: + +```java +if (MyFeatures.NEW_PRICING.isActive()) { ... } // Togglz +if (ff4j.check("new-pricing")) { ... } // FF4J +if (unleash.isEnabled("new-pricing")) { ... } // Unleash +``` + +To be fair, some of them do offer more structured options. Togglz has a Spring proxy factory that switches between two implementations, and FF4J has AOP-based flipping with `@Flip`. But these are side features, often tied to one container, and the path the documentation leads you down is the `if`. The libraries solve *where the flag lives* and *who can change it*. They mostly leave *how your code reacts to it* up to you, and the default answer is a condition in the middle of the business logic. + +That is the part I think deserves more design attention. + +## How toggles should be designed + +Here is the set of principles I've settled on. None of them need a library; they are just good object-oriented design applied to a problem that usually gets a quick fix. + +### Principle 1: Toggle at a seam, not inside the logic + +A toggle chooses between two behaviours. In Java, two interchangeable behaviours already have a name: two implementations of an interface. Give the feature a seam and put each version behind it. + +```java +public interface PricingService { + Quote quote(Cart cart); + Money discount(Cart cart); +} + +public class LegacyPricing implements PricingService { ... } +public class NewPricing implements PricingService { ... } +``` + +Neither class knows a toggle exists. `NewPricing` is just the new pricing engine, written and tested as if it were the only one. `LegacyPricing` is untouched. + +### Principle 2: Decide in exactly one place + +Something still has to pick between them on every call (the whole point of a runtime toggle is that it can change while the app is running). Put that decision in a single router at the seam, so callers inject `PricingService` and never see a condition: + +```java +final class PricingRouter implements PricingService { + private final PricingService enabled, fallback; + private final FeatureToggles toggles; + + PricingRouter(PricingService enabled, PricingService fallback, FeatureToggles toggles) { + this.enabled = enabled; + this.fallback = fallback; + this.toggles = toggles; + } + + private PricingService current() { + return toggles.isEnabled(Features.NEW_PRICING) ? enabled : fallback; + } + + public Quote quote(Cart cart) { return current().quote(cart); } + public Money discount(Cart cart) { return current().discount(cart); } +} +``` + +There is still one condition, but now it is *the* condition: one per feature, in a class whose only job is routing. Every method on the interface follows the same toggle, so you can't end up with the new quote and the old discount. The combinatorial explosion from problem 2 is bounded by structure rather than by discipline. + +### Principle 3: Removal should be a deletion + +With the seam in place, retiring the toggle is mechanical: delete `LegacyPricing`, delete the router, bind `PricingService` to `NewPricing`. No branches to untangle, no `else` blocks to read carefully. When cleanup is that cheap, it actually gets done. + +### Principle 4: Names are a contract, so check them + +Keep feature names as constants in one catalogue per service, so the IDE can find and rename them: + +```java +public final class Features { + public static final String NEW_PRICING = "new-pricing"; + public static final String FAST_CHECKOUT = "fast-checkout"; +} +``` + +Then, at startup, compare the features your code uses with the features your store holds. Anything used but not configured is probably a typo; anything configured but unused is probably a stale toggle waiting to be deleted. A five-line check at boot catches the class of bug that otherwise surfaces as "the feature never turned on". + +### Principle 5: Treat evaluation as infrastructure, and decide how it fails + +The toggle source should sit behind one small interface, with caching, fail-safe behaviour and overrides layered on as decorators rather than baked into each call site: + +```java +public interface FeatureToggles { + boolean isEnabled(String feature); +} + +FeatureToggles toggles = new CachingToggles( + new FailSafeToggles(remoteSource, /* default */ false), + Duration.ofSeconds(30)); +``` + +Two failure modes, two decisions, made once: + +- **At startup, fail loudly.** A router with no fallback, or a fallback that doesn't implement the interface, is a configuration bug. Find it when the application boots, not on the first request. +- **At runtime, fail safely.** If the flag store is unreachable, keep the last known state or a known default. Never let an outage in the toggle system become an outage in the business system. + +And keep a runtime override above everything else, so a kill switch works even when the store doesn't. + +### Principle 6: Pass the targeting context implicitly + +Per-user and per-tenant rollouts need to know who the caller is. The tempting design is to add a `user` parameter to every method that might be toggled. Don't: that leaks toggle concerns into every signature. Read the context once per call at the routing layer (from the security context, or a request-scoped holder) and hand it to the toggle source. The business methods stay exactly as they were. + +## Flipjack: those principles as a library + +Writing a router class per feature works, but it's boilerplate, and boilerplate is where shortcuts creep back in. That is why I built **[Flipjack](https://github.com/kamranzafar/flipjack)**, a small open-source library (Java 17+, Apache 2.0, no runtime dependencies in core) that implements the design above so your feature code contains no toggle checks at all. + +### Replacing an implementation + +The router from Principle 2 becomes an annotation: + +```java +@Service +public class LegacyPricing implements PricingService { ... } + +@Service +@Toggleable(value = Features.NEW_PRICING, fallback = LegacyPricing.class) +public class NewPricing implements PricingService { ... } +``` + +Callers inject `PricingService`. A dynamic proxy checks `new-pricing` on every call and routes to `NewPricing` or `LegacyPricing`. That proxy is the only place in the application where toggles are evaluated. A feature the store has no value for is off by default, so a missing entry takes the fallback rather than switching new code on. + +### Toggling individual methods + +When only part of a component changes, toggle the method. Each one gets its own feature and its own behaviour when off: + +```java +@Service +public class OrderService implements Orders { + + @Toggleable(value = Features.FAST_CHECKOUT, fallbackMethod = "standardCheckout") + public Receipt checkout(Cart cart) { ... } + + private Receipt standardCheckout(Cart cart) { ... } + + @Toggleable(value = Features.ORDER_EMAILS, whenDisabled = WhenDisabled.NO_OP) + public void sendConfirmation(OrderId id) { ... } + + public Order find(OrderId id) { ... } // not toggled +} +``` + +### Toggling one step inside a method + +Sometimes the change is one line in a long method, say a tax calculation. Hold that step in a field, and the method body stays condition-free: + +```java +@Service +public class CheckoutService { + private final TaxRule tax; + + public CheckoutService(FeatureToggles toggles) { + this.tax = ToggledFeature.either(TaxRule.class, Features.REGIONAL_TAX, + this::regionalTax, this::flatTax, toggles); + } + + public Money total(Cart cart) { + return cart.subtotal().plus(tax.tax(cart)); + } + + private Money regionalTax(Cart cart) { ... } + private Money flatTax(Cart cart) { ... } +} +``` + +### Evaluation as a decorator chain + +Principle 5 maps directly onto Flipjack's sources and decorators: + +```java +OverridableFeatureToggles toggles = new DatabaseFeatureToggles(dataSource) // your own source + .cached(Duration.ofSeconds(30)) + .failSafe(false) + .withOverrides(); + +toggles.override(Features.NEW_PRICING, false); // kill switch during an incident +``` + +### Failing at startup, not at 2am + +Routes are resolved and validated when the proxy is built: a missing fallback bean, a `fallbackMethod` with the wrong signature, or an annotated method that isn't on any interface all stop the application from starting. The consistency check from Principle 4 runs automatically in Spring Boot, and can be made strict: + +```yaml +flipjack: + consistency-check: fail # off | warn | fail + toggles: + new-pricing: true + fast-checkout: false +``` + +### Targeting without changing signatures + +Principle 6 is a single bean. Every toggled component reads it once per call, so class and method toggles always decide for the same caller: + +```java +@Bean +FeatureContextProvider featureContext() { + return () -> { + Authentication auth = SecurityContextHolder.getContext().getAuthentication(); + return auth == null ? FeatureContext.EMPTY : FeatureContext.of(auth.getName()); + }; +} +``` + +`GET /actuator/flipjack` lists every feature with its effective state, and `?subject=alice` evaluates one for a specific user. + +### Loading toggles from your own config store + +Your application already knows how to read config from wherever your organisation keeps it, whether that's SSM, Vault or something in-house. It keeps doing that, and hands Flipjack the values through a one-method loader: + +```java +FeatureToggles toggles = PollingFeatureToggles.builder(toggleConfig::loadFeatureToggles) + .interval(Duration.ofSeconds(30)) + .build(); +``` + +`PollingFeatureToggles` calls the loader once per interval, a single bulk read, and answers every check from an in-memory snapshot, so toggle checks never touch the network. If a load fails, or a value isn't `true`/`false`, the last good snapshot is kept and calls keep routing by it. + +### Using a flag platform + +If your flags already live in a platform such as Unleash, LaunchDarkly or flagd, the `flipjack-openfeature` module uses any [OpenFeature](https://openfeature.dev) provider as the source. The platform keeps doing what it's good at: storing flags, targeting and rollouts. Flipjack does the routing, so the `if` from those libraries' getting-started pages never reaches your code. + +```java +FeatureToggles toggles = OpenFeatureToggles.builder(OpenFeatureAPI.getInstance().getClient()) + .requireReady(Duration.ofSeconds(10)) // fail startup if the provider isn't ready + .build() + .withOverrides(); // kill switches still work if the platform is down +``` + +It follows the same principles as the rest of Flipjack: + +- **It fails the way Principle 5 asks.** An evaluation never throws: a missing flag, an unready provider or any other error returns the default and goes to an error handler, which by default logs each problem once rather than on every call. +- **Targeting comes from the same `FeatureContextProvider`.** The subject becomes the provider's targeting key, so per-user rollouts on the platform still need no signature changes. +- **It needs no cache.** Providers already keep flags in memory and update them by streaming or polling. + +The one thing you give up is Principle 4's startup check: OpenFeature can't list its flags, so a misspelt name isn't caught at boot. It shows up as a "flag not found" warning the first time it's evaluated. + +## How it answers the challenges + +| Challenge | Flipjack's answer | +|---|---| +| Conditions spread through the code | One proxy per component is the only place toggles are checked | +| Toggle combinations multiply | A class toggle gates every method together; method toggles refine it in a fixed order | +| Misspelt names fail silently | Name constants plus a startup consistency check that can fail the boot, and unconfigured features default to off | +| Removal is archaeology | Delete the annotation and the fallback class | +| Business code knows about toggles | Feature classes are plain implementations, tested without a toggle service | +| Per-user rollouts change signatures | A `FeatureContextProvider` read once per call and handed to the source | +| The flag store is on the hot path | Snapshot polling, caching, fail-safe defaults and overrides as decorators; OpenFeature providers that keep flags in memory | + +## Where it isn't the answer + +Flipjack is deliberately small, and it's worth being clear about what it doesn't do. It proxies interfaces, so a toggled type needs one. Like any proxy, method-level toggles don't apply to calls a component makes to itself (that's what `either` steps are for). + +More importantly, Flipjack is designed to be lightweight, and that is a choice, not a gap waiting to be filled. It doesn't own your toggle configuration. Core doesn't talk to SSM, Vault or a database itself; it routes calls by whatever values your loader hands it. Flag platforms plug in through OpenFeature, a standard API, rather than a client Flipjack maintains for each one. Storing, editing and governing the flags stays with the config store or platform and the processes you already have around it. + +So it isn't meant to compete on the features other libraries offer: there is no admin console, no user management, no approval workflows, no analytics, and the built-in sources don't do percentage rollouts. If you need targeting or rollouts, use a flag platform through `flipjack-openfeature`, or implement the two-argument `isEnabled` on your own source. Each of those features is a dependency, a surface to secure and a thing to operate, and most services don't need them to switch a code path safely. + +That is the useful way to think about it. Flipjack isn't a replacement for Unleash or LaunchDarkly as a *flag store*; with OpenFeature, it works alongside them. It's a replacement for the `if` statement. You can keep your flags wherever your organisation already manages them, and use Flipjack to keep them out of your business logic. + +## Getting started + +```xml + + org.kamranzafar.flipjack + flipjack-spring-boot-starter + 1.1.0 + +``` + +The starter works with Spring Boot 3.5 and 4.1. Use `flipjack-core` instead for plain Java or another DI container, and add `flipjack-openfeature` to use an OpenFeature provider as the source. The [README](https://github.com/kamranzafar/flipjack) covers wiring without Spring, Kotlin, per-user toggles, loading toggles from your own config store, and OpenFeature. Issues and contributions are welcome, and there are a few [good first issues](https://github.com/kamranzafar/flipjack/labels/good%20first%20issue) if you'd like to get involved. + +Toggles should make releases safer without making the code worse. Put the decision at a seam, make it in one place, and let removal be a deletion. Whether or not you use Flipjack to do it, your future self, the one who has to clean up the toggles, will thank you. + +--- + +*Updated 2026-11-02 for Flipjack 1.1.0: OpenFeature support, so flag platforms such as Unleash and LaunchDarkly can drive the routing, and Spring Boot 4.1 support.* diff --git a/draft/feature-toggles-in-java-without-the-if-else/preview.jpg b/draft/feature-toggles-in-java-without-the-if-else/preview.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1ad1d6b219bd5f079053965100179f28303482d1 GIT binary patch literal 105695 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

u(dO?J_RES&t@?WrS7FeBUAX8`X-z zp}82<5}kZ9W@gSsn%*rF8uhUY-l}an2%9v+Ye`Ewi)6=|*C#O;G^)=CEcw#XFi9JR z$R5tOGE{CGlo|Dv$t1BLy`xOmf?kI;e(Ug15Bf2}(}!YVA_>#bLx{Kd+Fj)J(qdD4 z%an#~w42@NSUFmpc<0DK$y`QF{S%({zkizl+6y-H-mO@H#fvb0#9r^I|Okzw5ZbLgln$c+BOv)`VvwR)BBXbr;fR!n%%a| z3UZAzGA@+le8Bx(!E6d`Q_MPTbrW65V8}XC1Dv#}Bz>yPWHP8Ju)q1vQb9;(kV!rfJ?*bgL9CT{Q3jDofZM^T%qyub zoi;IfCYY%6HB+c1&oLpvGS{OZjmZL{-s%w$Uga*)Pg}wZQ<&tu`*2KcwlnAGnQF4M zHCOLlcd+c_`#km4&zBb-t<579&L=y!&r?Nz^Q}Mn%@-DQy{JD1c8R<8MQ6i&W?;!_tqCp_VgyqwctbL>OS zG~kD>c5cOjs##@n-HSbPp*8aP4Lkzr` z(+6me+D`kMi_61`BVZgyt3c1f>WgxcW#CE-o-Nq*Ke!W`P7KDIDYO6DCb@a-Hd-Uj(QymeYmYm{PS&T+_))u!m}pwM#c52LSFS!Ce4ZvqEDd` zXESB7yQ}NidIl5D)vGOW;^F#J7jucp^sKzE(Oyk%u~!;rglb<8W$5qb zr*oMIkdX8886S3ZFS#bF%vEqB7ZkLv-HrmG;_aN%=gZC zySuF3T3A;6M3*NqNDOMCJ~gQcCOgxgth)I|%4hva=tzc!_a4sJse{j9g59siRA4=O zS^rR&1RFfzTp_oIN_9SPP>T~ZxqD{(y@Sc!{w&#F`kX9A-IAtid#z~sF-IvtGjO8%DHQ2uGiVNj!aPe&yHOkr((hzbo zdA9MvE*7W6$o~7%`lgHFOVT-^Tf16vsz*d<3unGNLq8eSf8tu3Us{{H^M2!DNwt?p zTsue0BAm`=4vQ^|S4TW{2g}HCWr%*K?O(4b*MmFII7(OeZp8@XZ*P0!4^&!?OkTXr zt?gnSQ`}^#l5XX+Sy_ft)GXHDtPplV1G4l-%?xcQG_wze->qwX+0HaEmQ~o5l@XKz zx^v-@NHv=!w}>mD`p@`>7wJu+GV1=!WSQ@~GilN%P3^-!`y*7frt=kSGwh*=Gld&n z7_ks%v(ozI9U0!D_J$C#k~1MN*6Na4wUuN+aPlJ^O)p6Dp;=95$ z-r~8H!Ovdifhq1~McA!w&wa`ItC^Gk zLmsek!w&%LXw`2bho2G$c;tUb9R6{M3l>b?uy%Z+=H_1o5$mM-C2|1%E^>%i3kOs+ zyT?s-5FUY;6N?LoE+pWXTgW#>H}E|kBy-6^(YM?+Qp}m%9wa=?MJ|JhkV+}jdRhU& z`-o%8nE^!e@5K>P+Vnf{B_&Fb!FFf?6tsF+NFX7uFZqun(Uzhyw)jCE_WZ*%XvkY2 zcq3@b%j#sk+t^4fjdvpEQEO#-D`?n85ni9nRs%NSicQy%N-EcNf&v!Nt&lCr-08DU zbCT51J;~{@Bnnn#7&@GeLARf!IZ$4W$8s2Om{Fd(Ku6g|~sS z@Ohu#cYPi~d<(cIiID=u9=`nncnfc)7cqi#Z36OvT`Z9TRnLO0V(C55EM#T*^GChL z4dud+#x_E}+9z3ty#9OzR9iVJzBY!Xeko{hj76A%>G^)1cdbP>! zQq@M+5ea&uxah~A{G@W?txFb?H34HBMo<*<<@!Rmdm3Mb93Sdb3AE3wON+76jPL<* zjn#~>c09fk?R=E|3JH);7>priDd59IL_jX%UJgcQ?!rrwy9vnrU);TAP+UzHE;@n? zKEUAa9wfMBaCZp_?jGE2(BMu;aF^hgV8J1T;1U7}4qx>*C0Ln70QUQ1dFw21NmXjhec3M?aZo3ju0fHE+9=+5x{w&iE(8D%HZuPyEnBYB*Qbl+BuVoC8g{hESeeJHK zdEh&CQ4hY1CKN@(rxepkp%_p*)|Uo+u!(x+-!~1M2q#gsjU^K%-KA2L8Nz;SR~%4m z_`|V|P~@Fjakr&fkqfp9v*ojt*?ug$&*6B*8d=LrTOjV1^HDfoF~K-g zQ@iy|hfg$u`v9k;Bi89hmbx0Dn65U1#|Q_@@+mUBz6ax4Ak8~uA#Rk5A zv&An5X`brXE}GVc0wStZim7_?sB3YkefZE?h&w_C81=*nBK;+SHr%C`=OAEp$opVI z!5>6REMs8mVTKWzYg$zR0IpW#xEyUn=WzxAFu;KFKXYNqpeWH)fH3O-nldQnsX!I+ zrQw{vEuGZzF+8WzTQ2(wUrr~sn_k2{6PP!#1toiW|0tAF-qc7&&E6N~{*GlPsn*5X z8v5QCD;f`#-IP=ghf{$DANU(xtet6FToa1Bg%MJ55C&{mH=p(@gcqWX*%%EbcY7}5 zZv>~W_+EtT0+dfSBgBCS126#ctnApASsTR>l@A!Rdv<*>vq(1@`kvw3XYb_v>AOY3 zODGOIU!iXhSfFF{L1jMyV@_o$?)vc|sQE8LpLQQQ9L5NWp#&6%1B&s52dDuf5vUiO zw)-g$N+rADn?|REZpq}JKB&NV1o1^4`aggs^D$LKZy(O3y6tcD?_#bI6dsLoPKrhD zAG|Pv_}}-f*Lt`>4P-o7#+DqYn_pYfY-&rzoc-?mP3k%MT9TFTbtASCdihe0>sQ+^ zJPHtm84w1PWh7l@7=|gA#Iu9qpz+McFzwiqI7k^#0g7NxQ-A>#U^)iF=!~*7!pu6T zYX!0g6-FeMJ~2Y<`IvMy??<)$^t-a2|Nk#odI2_0MtLbod-svC5k3kGK(uD_Lcc5Q(cqhIWc>G%XqE2A zMlN_3(1O)!9V4Y)>nNPWxV$}`r%RC0-I4sL~ z)yedIvkZ1C1|?uv+e~~fQxcI$VT3!*?7*ru(GwQ*$@aDn4VT(nIG+d+BIdV}{o17@k^)E$neIqqzlw(Edb(fua_g0GaV=~1P20dKd zEt(uw$3u-qnN(g;^;=dbLfMdFEbe+ds%T?JHo0gXSJ6EH-lU(9tzo45G`m+Urxr9U zfF5hj4kebCpv0XtulptNu&Dx4lB_6gQK>qdb&?RwIi6tcZBeN^oOKQo%t@Z0pSp6y z2>WlsyCenc~T z;8S=w2KHtg+mSOqb1d361_h2R1VE7e@D}KPfccyqqYm=h47pA_T*V*B8A5l-NzKPK zTm+6Jg@)#UL~DBpe!up$OxA{AR*(DLTF>lrN7QmjtceQq&249OX?I{cyC+w!XJ@P|{7P|knSU)3M} zz&){RFn;-dG+z|2gce`!=JKpgDaCQ){$IM`x`7>coAbxuHi*5 zghIy&QFWvn@|!)CSnm%XE|DVDI2@qugJ&T!5RFAY?Txlijmy=}6ZoY?Co8+&HK>C+;wjyY;r}CWEp>~wEz zvxHEAbeMFAF`m5_I4NTzK6#MiXEN9MCx21!xTD;ask5$`RZp(FJk2?L?ZGQ1ES!cU zHj{eV9Vk=%GPqXt#|6oCeED=lRAvn`45*B)w}n#Fz*Y|YGTIyWG>|7zy#*MGk3tV8|yVI0ATS|=_>uR z(rLadmpmTPeq%pTP~LM3nQ+lLAi4n~-8`eem?X6TAmp?Ry`&|A9W^MI#PcqrfHvKM zU<~}I9Y`MmjKRWx8yIAMi~`wqqx=UT55mQC=h>?uK_IZCsZrwy0sy^`rf6hL9B5_7 zkHwz4W3@3|?wMGIiS9s4FOpVhqIV#OJx*K6D(+tIdJNb995AkM;PS<@bWJ2`6K=;O?6R}@ZiP(m;o+K zIsjCJ&+`b3i0OVa{{&41Hd@L(3^WdXtRrYfOmcoCt9k2C(ncS$h2~BZ0V;a0q`doS z4s++|L*ODVYF-AIzWaZ=u0YYmKLE_xcKZ#?qO0*o1UHz0IeRqYTre)$3nt*OtMpfj`+9Hq`zW`S-JOzDejL9c@#F*(hN z@`|TsCYUN#;K2qzK*RL_!W}>GP}O8cs*aCd!X%ICoW~^rZ;7*GL=kLMVk3$K`bx!wes1l9SQTn6yVp>V7-TwcJ?tF+DT2 z_T5|jq&8$`=v_Q}N}F8Ch8MLmedLUxNZPOPR_5(NI0v_Wic#Y2aCa1pg7Oimxzh71Lv6kS=NdMUfO%=r&kY{9f$&P)>=W zfgXIfsLk@Kh{; zt+58YxWbN;6zjKlT#YpKG`?7tcr4UAqx2A~Lj zUy1kK0!`RKQ-{1GZ+JH54TJFsJ`#++*rI;}^enl>oRike1n?eA>P$bJ*C0*4lo2q| zxz*Ec8W&!!6;HfLtEvLlZ$+f<$!5ac#l^0APjWjeE+Jg6`7U!Ut+d5k&3ckmbsQr= zXn&fR8Zy3D-7-8jde83*7ETPOZ7We{APc1n$*3gs$6RC!L^UWZtsB zE~ux8JVzrpB-gE~4PH83KGofqk|@a%Qd9}>GXYpk7f$w~-={-Lg2-bD8JU&vR~MZl z@v&4iq$5i|fV##3v@HeipWQK__jwa6Z!Z}(Vl2uNosXOqP<*hgjAE6HLhP8~ay2tJ zf%X>el2yo*_X7rmW1p3Ygzheak;WCVt~4jfgYnA)^YJ=IwPd4T^zm9R#KvALD}+uh zJdk|ukTvF2no{TA)7d4h75YN^h%x|{={r+b?h8%Am%Y(aI@z`eiueZv+$kwXb-g7v z&hw^S{X{E2Ofy{lD-7(B2IX(AO`gljVqftWr9YE>yKj{raq;pbJp?pnWpf<=bc~J3 z@IDXm$4q?v149jy3JspTPYY4ldYPOf>41Em4GO@Y&!R?88<9=0g(@ zSbZFK?Lp{vr4XEm zK{KO#pi>8b(E5@kv7K|Ng;4`gg&Oy)Q2#I@Og9kqp>6GB#!g=E^`h~RD=xmgd!;mr zk&W$BsE3SbAcY5q+qJ`j)afe4KJ|ae`3K-Pm!7=k9585u*`F~^(9CrGBHVV4wsn`r zzD_QogiLmVZ*w5lVelwyjeXn75Sp~Um+SuxMVh94y;#W$f_T0ktFqK@56(0#qS+Ib>>U^m;oSdnCPASR-zDpF6hT;96kcDlmtYvdr6UZv zJjpR7Dn>*!fE&t>0*hv2V+Xs>qAt_niem=$uCzkYv5SUiP*uGi3GG-0Gm-#P_exyl zWZ9U03zw0zvi+LW{TE&QjD4`6Oo9(V>ITkjeLuLgv2_O4`2-xEC$c7ad_~OzqV0}2 z3`Tt@9t+gNNhqbp3LdTs!pjYdV5QN0f%sXJ)e;fUcc(Kbn~NeS4eob(&}6SVH3Dcm zY$=b+=xJ1x+)kq(!UOyEoymk4cs(&^HyJsdzId53E@LbcqW@l+@}sTWhnyOiWra;b zeM+GYg`(^tsgygAUg8mHrE{#O)vx5|3M$YdYJ4S8SK~<#b;cg@Wbt42QBPH)~GhXg*ZOA|nFhJ&^CxUi6N}llWd=3;OA1xHoAhA0y zVTK)r!NjpPoh?HH=bo)w3x^vx43#q@`x&;xTk>}*7$kQTt{_h28~ zvVQ1sB3NVM(nE(dUA&PC?|S0LkT#-qeOA-NK!w_Gf$8m=dLA=KeO#kbLoh8kp4vx< zkml0=Ye*|Li^gaW1|ZzA8m&htoM0T@pws2^4*=C`+vIbp+HfDa9_;tbw_d3J1E9Ej zc{3#D&f?2~TKdC;NGZWFpM_>U3HXf4G*GGh0}#uFox3vEY8PWvRO{J_V-o>StXoD5 zuk%YkCRc&ywQflX7ceb2?*oNqg59f?I) zYh+s9ial+lT;p5Ep5KR>?oc|w*TIq(34$hUphrF5*OU-#b{ZPiFVI)zW3Rdo9cLRjl+zu zVJ=uMIsxnFI*Q_$tfJqK6l;5!<99PY@`q)DEs4>~L;E|CT^OCg{ zoM5Vnv_7&sBI}p%E`k!VqFwKo&0%-}-gpBLVTpV?u{99xPZPPtpl_KD^Votq?Kt5O zbYNBNCQVbTYG)m|kZsHc(azm3w(w583uT8&086K# zKtlHSxZi4s(~uIBfo^$t;2N{EgFtGHV87FRJXw9e4 z%FkGo7RRL-SBP_I&6O_VnMQA;QIp7NA1&*Tc!rU0`}bG8^*Y%wojlJc2!UY2y@y-T zV03RcY%dyGURXOC0D_5GbkicrdLWE+tA}@daDFUNfB5{~~(A8%6^c{Hdp6P zfJpS)DaN;K?Lo1Zg~N3F5?`J-d6{R@-)|6$v_npcXne7z4SCzqpMbs| zDtF!BxTK?JZ*FK6h`;5Hjj=HX5c0Q}T*lLm-So-xp#k=y_*I8%zRowDilIj>ePc?M zFAW4cBT}C)$rJwwQRX5g%MSTt*mvAlGf(^xa7lb;mz)jl%#c4TtbedS=p~;N`VKfT z;@ZNOkwriW5{b6Y%XoqTy~Op5+O99uq{oejhp@}21r?o>pHf6sF64ph4TJceu?RR? z|11~+WS zb*%-!41V;!lj$}1^+N9#GTbTh2*iHSEWWy#IHAUB+5+OsCmM9#@xApVA1!Mpa60MR zn*EW$W(htpVW&WFfibEo?o#46skf=IwYr1v+_b%60+?0Sy*RI<@$hSq;yxH0G}Sv^ zuhpAs$%zZ3-p;TXKJuHDQBPsi_21Kfmw-dBlqMbgIh?p3XbA_o*`tX+88RYh5(&~C z)ddC+P+YqMj_=~MhM3u0817=T@eQE_82n(!Odyue7q*OUDKS`r%nhC2FC?q1hU-rr z9hzCT5IkzQIa z0F01}eAp#K^b_x~s0mZ97{!=L7CQ*bsXCsWnuD8Atx<)GW=!O#%HK!aT>0ks<3o>| z3v%tB0l&4nq}4eQ*IC8Vbc3_Tr7FKunj#$%}NH?E2?O0mMN zkJWZXS+26^7;{ezl%^3!gaW+21Qt&pilZLfB^VE07@&05UBm6zvg|id+_>A^bR!td zv?_fZ+VI3bH1e^bTMA86`;Kl4_=6gi*5%JDf?z*AyEJ5ea-qT#I|^29<)Co9dP%oEA+35_X|(bTSo7vDZ#5)l zvLMI3VZN7z@EUf>a=&_LBK9n9L&hK$uM5deSjA%>FZYOBriJrgbT=z+hX9v{yDzHe*K5lY`5F%ImNq?KM9Nrh*GTKRCAMNL%)2QpQ=>Uy6t-vlz+ zL*yfR*6*dj9Qqe=EgM=5MgH7W3+uO-JFyXwLxOQLUz=~zs}BK%PjqH>6iRmAkm17g zf{MFe=&VnoFW!c%_PGX9h$jq9^N#lvb{}4TNB`56l(MEb3$N}2kb2?#wZ9`6F9T#hp1B(11~5VW*6Q`+XEc6O-tvc66Spd$Dd#6+AXhcREwaKZ3qpXV2qdxD zX5owf=moE*mad0ZfLf}@hGi(h;*3P(Z-Gk0Hdp-womYy~y>zs|h&am&rOR(+M!D*% zeR7?Fcjn4n>@u$eIfT0+xO_A0Kq`)v^HYp+MnysN+a_#27>i%X(uTSaoc-OUf2XXy z!W(?e^Y*Mb6VtE;0N1oxS2l#MZ{53Vsp4)rf66wK2>j@KVaaf zi`X7r;ym~_A)3P_|Iu_JJ7Ul3Jm8xIcuAf_s)Aeq4bD(P?GzZg*o6Upa}Dbmmp04I zpWHw#;U3$4XX|386GL!!gJ2<4!rPB?YQgKeBDp-^T|3|W#~1(61bf#fCrD?7u10#l zmQXh@sPds#UcN|BlvJ#R*mOzJW^RB_zXwj512`*?Jdz`eaW0JW^Nf@Y8N2TR?f1Ka zC`8OOJ`dTSje^mOgi{f`CQj*t#^k0ghgnMb06qy_r-Dmb=DsM=p-1E6JEf+vt8;$0 z_@ug;%K-*>{`Kx?h`4mli~dl2;cT)!NdWA_G$5$*!`}CFacys2tCDMR-inl1-X0p! zFFR%9;Ba`O3P^E9~8^1(Gj#nO!T}t0mVvb*U5KR1}dO> z%L1pz2OJ?}R!F}czC94o?wF60>LcEmzW{sEP6{e*d!EFW;RC3yTMA`_V|?k&#<14I z;$O`B1@1oD``tQ##%4})3Xmye?155RI@Pn4j%UxqeffyO_4n75{)*)LC82#*kr;R| z`ew%K@-bKdxUg&X?Xrq=JvlMODQ^N#RujFU5)pJS zWELhtBa-`A+a6vi5Ehx{cxUP!c1|*xdC7!blGRC7qJ-9J1A||^h7Vo?yXez;Ta}f9 z*(%!FGZMc7o-&#FPYpE6?*oZ4Xplr0{hIkGY&C>oH-UB3=?33ireFIDy?3DVLQ8(u z(vnag#|w89sYPCW{7%q8V<3U#eG@r;9%`{mVQ-@Hx0R~+wJmRdLvUFB*El=@cM#eI zGtd|gDUUbLt6zWQWDA|rs(0!`Qr+N%CK`5&F+M7i2^#5=l;dHV?2zd;x7iHVW-QlJ z#vi(^@TCu7{Tb*PvG}5@jr~$?38~Cg53~-1-ER^yF#}a8>Q|#`yFSmT3E61TYT@TC z&MS;`7fVZ1yiWe}m@Ixo|744G;VEwHVm5U~@4t8|Z49X07Ejp_woH6Cbd&Rfc$X_X z-}r>Dx(*s)#0&SDgOYXV{WS|tyWiMqpl}n8JE98?ztRY6z2D5%%X}HgyO5;$J+f7t zt}aBdWfks=pD`FQzvrms@p+Puk{Wo7e)qmCCr}T7H1Fyy%~}jWgtbgF!c-(Ie_vC~ z(b*ls?w&+R6}fq>8vtgXG1_~iQ<|+1HDFL*4m&$1Da|96aE=TfcGCLMp6Pr|>+xOB zuPyc(q|#5JI|{=vhHG2{J^A1SuFL1SithLbcT8(&8d!eYQ{@&=pxLw7xs^eyUAg#H zmBAwW@Ov_noh`EXT5p8aP)P6le(#MQGS}6VPRZbn!kGeG<9hgrW=~f&)0V(ZNgf&* z{&yX3KN>GwCS-1AW`CUdP1S~m*FN1tA8Twb;Xyba^PGo&9%)aVE7b>c(EB^JJl^vq zqR?gwEVT4Brf&*9#Dr;j20I>c9wA6Lv!F^zclt8o;7rsn+x$Pe)mh%St^@4f#)%(wddX1Z@fzkmZ>5v-@uwkXORTYEfa zA6|9Q0kHLn^ZhpbC#o4_|Dq40-GwnFqqn^;0x?&`!`@!1EG!(zhzA5;9*l!rHj|R6uv28Vr027Hav_HbI zCvTPXqCF?ZPft*Qm+O1No{a^8yl?36&wG(>-#)LT#rlmOeU;a{4mppZq9NdWzV>qI z;-C?cax2bM);BTw`CUp;aO3R_K^b&YNv~v0razInzQ;ENlO!6AV~ODW`#*r1zAV^8 zwS)U+y}PWoCn(S;g>LS91275sONrT=vaUnhF5Vp{7E;=na>{V#nF%WIk-}!?A1aYk zsC?6VHPO=IngjWDFm%B&Mk7^QI$!z^fH9aqi^e`%c0Zvunuf&ub*s7MPl21ED@L?s zMeLGKvvwz*;uG^as#R3W8O+0{!>17GcDEb44u;~&Cos%zG0Z`Jj)43CDT20%hholiJVbG=VV zW6x*k^M{{5?w&^wj|RZqPN_V7>`U<%rmhPo#cLQ}ZuM+EMgC?3D+ps0e}W3f3UALX zhf99e@`zicfmB3L&f`~n;+#%?Y?tR9vsj=+urpS2=qha*9 zU&*fwR2#x>o>m@x6P@Q5G31;Y1GE%&J-xUfsya7;^jZ)mab>5F5VDpEbbL#3NM)Xf zXn&mc3GD{*i(9{_P5dX5&NvE79^{Vb8Uik|8x%hi4J z)~D1Ey~jq!6^K;U=T2IWXP=-~c#8XF7eewKLhC$hyEFc1yPE=-;lD&N=^P?%)=Dl! z+dM`oQ${#9W}+{4a#{*CIOD}*TFoT3n&sO`FiHtD*%a>hdT^ou9|q11JfwJ=Sise2 z$sbG;+zC|YthX-%SwzOGTLKb+I+4`=Mk`$d_Q;`tnBhD4X%IgDO}aD8MLzZpk8b-D zD7h*ZYmz3|h&I*o0Z0KzFF`2Jl%2tIp6Rr4Mm65*fgt741PR8=$sZ&1Ntc0yD{?i<_Y za_2hX0e!echcyi8Ot@_~ z(P=rRA|MKuNw3|CJ!PjF!Le}=vuqi^h+R#yMWY|cH}EWX!455o-qDswD3;ZI9o$*! zD4gYP9z}RxqsSTZmUnC^c zPUsd62m#N>oW9Yzjc$U`2Dc^g(~M_!l5jE0)`&rsi-}Y-MotqQ_-1)Cpkl!puARIW|Lr?kT_6$j7Oiy;{yjb^ zy}BT@XSebs=*9caCi$okakNh6y-9xxe+oW}J`%F>KM#??>i{5_6jz-rLq8UpOE^dI zNaPgoGUM$nZJL9IWAW@wAgOqC)Ll6Nm-GrUkrsPy+TwZ+sbqHpAVCKkN+ua6Uhv;pKz>UwW4PmAWH@%v$fY{cFbU8u zFGXkTSRdt_@`=oJ8HQxvb+d%i8X|5(lWsA+F07|hUtcy|MTk`lBb#-v$tD@1N28-} z`C`f57#IC53f?qea@u)0RmlW-R}zge(&~R^(1v$S%hlt!sdXd6U{=N*wEX1vfHVjy_2ECPadDF zjg>TL=jN`z6pou3RoLpAZalRW9vHo^ejDR+a@)BYv-%Ta_Ur%ty4Mx&dEE1Cay0J2 zqt)1*`Ew%%KkS1qOx-x|fGI|);?}L(8wb}x6ZA|`-rk(xPBa6!BglSV?1=+8yw9F? z^zTppTSsngK$Pp^UH8x53i?CWa=U<39r=x+u#VT@-QKm6cTeROYDWZlz6ZuInu5!> zZTIWSg$e`okWLT=A%Cgu^I)g&4 zB;x>?-Mkgbz752!nqVL79^E2DD}qLMPA&Kj@mPr8Ijgf}M&W&Ar!uw1q4)3sVyRN? z-=*q93qnYz!$mkSK9Y6%4G&aBrpGGkCI18Xub3yo;YQj_otR5^;ihrU9U@QVPtNJtNnPZ)aiMU zCib;;p@Ls=C{WZLK*R(+By1f49E*HixahD<;h>(ap~^EZd~>15kL4u;k6YCg&@o)1 zqmaiZYj-c>$VnM;0-z`aG4}YI3~PY-3?Qtw-Www$F;oL(RC;fXhr&+V$Pk*6hC##()xD26gq4t!Z9nBOdFMgBVC6Qd$I!2_X-H9 zQKS0wo1P)9Dhu;@@KQ3nnHJn9Wmr3#14 zWhe{saF;?&wHt8a!zTd3!D9l<&J88S&L`d2cl@3%4G>Xh4GAR9-u>#-E&4)yK!6aV z>~?D&;#W*aotbbn9~6LE;8f7Y6B3%|EpmmMBt)ITG1tNU|F*VcMAgd@>IN?#Ky~z- z#qWJqGWRIjQKs{EudAPi)X$Lm1q-hm570#b0sV)fc0)4$5Y|shs!Zv^SDmGns^NTV zIW(9ylUg{JIXK8K(7Jl8aa?aVEo`CyGXX6{%Q&!I(T;`(a&O#Ro&;1C)X-bJH}EHzV-Q|+6rJ)9 z;92D3p-^MQty9)<3c2Y%2lp5BEQIjEv<_ihSwB^_WwA0WUHI;GMqcskVK5hI%3RgLvxUH(${TF=ugbmB z$sfP7-$hF%6i2cZ>6W4CCJ?X9Outt#&;VzQqTHH))8C|a;|zS>eQzH#s1c}2HITK;~*vfM+ulNejVQ(rA~ zfQUUR9=Jj3;sO3K2jj0tB(q>tA3Ep0<&}z?DlVzc+FPh!i0leF!(zh&rbO7QZ6h2b6;`_4x3OI+=hF$=eCf7D4L+uoU`uOeWDaI- z#|~u9#?Mp)^4dJ^3eDbJJOS9bCAQo|FM+s+_0@~qVMwWY?hB&q(#VvX=nmhG3#adP z=ysKRaL^db>E>s&H?H&KZ*&3;=`IM6E!iROocpKFG5Xs7lxOyuDB9qsUD9&zE`%z_ z!5h@p&-QTv(Gdu@m3|g&1q;U=tGhDq`Uzbz?tG@OiV`hoC=W4r9e@+5d0~)zE(OW> zoaDbwQ9)XfB&+CEL24JrLGdw)C_LiZw?upm_m9Jtqn+`i6Sp%m8oJ^BzbGj9O(x0% zm?oSncre7dI|#g~11=n?Sg0&so5s?!kyyXORu~m>kj*4M9*8FvB;wz9&O?6E^VI3v z39?iOV#LTNKf)gBj>o5UXp2aVmhJLBumJrb-!q)JxCuo$mQ9&ic!eZ8ZU#eKfj`*S z#XJR@E}}`vb3qYi3afYWAaJQ8cIh76LOC{C81&&&29G$1?dkKyiMHs(955X+eE zj3{WwO-sZm9zzenj&QT8kHqg+mBLcd39@?>#;U@&Dz)A)jS1(%KCB}JY6^$|a^5oM zarg`_qIn2mWpXx}wq>C0ES)!Hv97=3l?aVo@IC)dGRlVkl{lxWEYbwQP*;Pd@jlMd zIT(8|LQnBD*y%6stBa~d#eAt}k&1n4o&IcMpX(@lvr=Jyp-dfK__f-ZC`|KDOsQ=m zvC&!p^F*=@N*Q?)v47jH=b?)QtG}ek+#k+rRH2ui!|6(HYi_enQq7J7erq%qV=S-# zo7-gKJe?mgF9vU5(AGFKn6~`Mp;XMl$?K*Z$*cbh`<9m+m(_-eQ&;?FfcsQuD}ghm zyn+wMY=<@^)#jGS0Sk`brLW_+{1E`3=jcwMrQBQIu$uw;59e*1y{O4<$Vl3`uw?2% z9OokDMwNye+~FGwzA!QLVPLB3Z2UgNIT*#eM93Uplv?`QZs^$hyGr%wyJ+-g&{^Wp zC*cdjo&D?fi5L14v4i?Yqsg_Dq^aWZZQ)3fF7?$xLQD=)Vbds|_L9MgK5L6;QSyUY zo9PW1=6jI6DUExR=J#lgJNo1k(7gmVZ zbFYE=vT8QL*8Dt4Ur0IvzZ^f;T6k{7w;)q=yGiRpAnnsl}v#}~|%Ka~SFyYF18H3T8mK7@L8D6Te_06;?hw*{zY zZrc(mZ>L3TtoNC$H?&;sh{EJ}P|X%iM~70tWMID^%N9Hj>TaYJ{#bk*9rFd$?HNPO z>-&L_vMY~}DW+{fMpoB>Ekw$boo)ip97=5=AuIEm*T#otznwi^;kgf*7vMWY6utR5 zgJFmA z8R?046)GFDyC7hJ!@K~J8a%YZV3F)2^`)z_sr((zPq;z&m6o=6nHCy(gq#^bcO7VO z&dmmyx1e!H)vu6iylv!=ovpn`Ct zZ20m&VCrjF6l5_2NP?B@rH*+bV*&4x_;eYC3Ott)oP22}dp)D4$gXwH3Hm1V5q8oX zLe2P(Z`|GxdPR|b)!@;f^vbNIz|gUSd-9e;ckNNhv$x_*%- zX{Ld$?H>SX%7Gc9p!my9xYzfYK13iTCLQ7Rkaz8Vv(S%xeEy70M3$ov?0Hs0^z7Ry zd|w^X@4(M;k(=Ke)|KqI5ip<64KXw})Cx}b9JH)10LAoBhTvTTma#T}UJ(ot-~fQn zz`>bnVjpJ2D<2#fn(;}~Kx4X$uIqB>NH7j53QGGiCrz%CYME4X^;%NB2o%gHPDl4n zGU~UlinId%JNBj8_SGWP%KqcsrnsTcE6M}Sx8&c>;Hs@T@wCz5ppJEaYh%PIuKbBt zc_5N9Z8b_dgj4AZg)&4QQNAsPr!{T@wOyxfaMO(=>)w}{kPo;JahY##rECdcBsd$x zpY`_n{z^9-uJ*3y$^Mi+X)Tk~)qC-vz<;#}QtoOgd-~P+K_f|XqF>mppx-rLY8k}8LM_lSfM?TD)r+6Z&0dwE)8jsL^QPL7LQ_mAE41DTo3Jgbz zaTIJbKSZuPw{Y_ud{Vw0vSA8Pxo$kobJ#M4(qMcgYN=3fQ+3$*m7>nca((u8U86-& zlEDzbE+)wL#-MBxbisNb$a>!+Xr=x9lOywZ)p=L&$zi`XQPhr>m)sUwKP#Kkp4P?t zJTr7GblJgf?VLLF);gh3Ws?U z_6f1m3Pu`NGok$zw7`^U+c8xP`WfGf@h9d&W-rN9&EJPiJKUHpQ9HfwHR2c`(oI>H zxC`8VyFcNgLZ9V;54OsBR#HzC6r9zAcjm6tC`;mkAKvFH&^hGR-p!cOL$YS5hQ+}a z4hB~=8(@pY7AY0M4?MRV--ol4A7aVN2Xub?sT-AAm7L$*ppwcmMHw$O8@v^f;Rwgr zWG>R?nB&Oy@l7|_g9~oWxrTLrgn&RC{a=(aK%~V)$1cUQ1^hL_5vMpI3;AzOEo7** zFh8@?zLz)2jKrol$f`Br>B$g|W)>Wi@@S^*N0`oxE?7`ibec}HO zR7GBl@48rae&xyB04V{;a9y)6Zz!zZoXOY*@y9*FMSOXUW4sj>BYKby)4(rPi*}#r ztaR(;z#%MTh!Q6BpXJ?36Q4LI=7y_zp#q*Wffy)NM)Nn{qoT!m^xF08kBJ*Slf|#V zO6Pj~5olG+Tv{17yN+5N@R#WuNHwNv?D{4|l7)R)`ThQCH@WKXVnYcxh&`O$0p({o z1GT)uwP2PC`g5zComJ#b^EeK-bZB&izQ#WaLUz?ZyKh_OO-XD>UI8tL*S)I3RQ=f# z$ti!@IUZK^19FHs8rX{!?IZyK?ziLe7uu~C&}eG|Hv-zkC21#$0zIBDNd-b)6-G;{Q)Wm+?uA$=l_Kc zm~9q*lbzl4_$*aZx)H$^Z7$@1j|vONB4BHl7%YYeY0)#WiwEF_Na{saAG3B`Pu8*q zj&-L~-C>|u?P1o<-Y9?_H@X{s?z)e{+7_MaukYS8(l<3?l#u&hbA`?Pit5O$FS_xoQ?K${jHC@b49`iF#{N8fwi z`%#lvVu)Y0uSO#LvOTU3GLGZz8^5f+M=~&W-2SvQrqnS7ZycQ@UmVq}hD-*nlei*a zIn-wXV#7Cw_|xQ50de2u1aUU=1D;amG5azk;dE-RRUm)9&YzkZE}F7ZNZ6 zUlr|lpa%{RH~8Ick&>`$Vi(GtB+*C1s;%R&eJ52{qBOQMH?D@~HanZvY1$s?swn<) zkkKnv)%oDQCf;YjVT=|0NgOwC=lo#!M%OrHD(Xsi+TXn1i&t7uHDd3AweT?hJ!&#! zok`R;Gt*x$@mtxfS9?LG`E%nr)ua6X+T0W$O8H@gzk>&-DyH1oFmiZkoHpx&s2uzUK*sw< zyNv62$C3mh=}DkjS+&7j!TF2kid2YA=|-wiC@S^cg}cv16*Dio(M!xz)dWPe+SnxS z>Yq%9xCT}U@&@+3`nPzi`BRU0@UVFjy(0XZbk(%Vw$O16dQ@^Z|GERH|D`}a?Z zPHcM>-}kFHl&@llF^OVTlN^3T1J(ZNOpv#V2vrra;lek_m(q@+jHV0I{3T4Hi7{)s zmgv4nGIn-2lk2^tZ#d_%*Mb|0m#V){ez+V!!hrX!%cqxoN%C8fL2PS*UimO@#5)QdMOVuMzO;Yhoanaa-4Ua#hlTIn*#c8nE>H zB>tmgK@PlpO-j=^d7?5+7y3K*v+-F>CKI!P>}#cDahpih0NXM~@5N^s0afNx_{Al; zDPfvlRr@s4i zo-a1`sH0Ena(a8neC9xt0jChVgxj(5_U?f5w7NNFSx2M#}vAHuR5KOnqGQ zDyt^mXxbhPFoqdraH9Sn+Wb`ba+YmnM4MM(Bd>n+#z6ODuy(9 z)9W+rZyRU#2e1fka>Cb_TZCeE;ceo{4R0in+3#-JUSjp^5{L`5Q4nFrK54O0P15#U zS0wmU1$=uol!cdhDqa1~Ygld7%kG(MpKcJoi%H#QH@j@z{6-j8I8-p~lNf`PPbopp zL+|X@(9hYYbxt{GTr#32EclB+$JBQ|=JZMr@n3kKOY7W|1 z)Nk69dY*@xb{EM@seIem;vXa8WJ?uj?~;F-pgZf%SuT~7s$>N&21Rq}8b_tSr+OLJ zOFh{hmaR5KbkctkQ&wxkYhy;1o!8{iUgm z<%HO=72DMb;|WsyUL4;REzR=wWFoDTO?JwfP#{{3Xkq|puZ z)L<>Fy&*VuriHd=mt#$eBD};-qD{<3F`Mbgl=?S9|6wAW4LggXwcL+hGAVjBh-TEG z;5S!n8Ks(m&mAhR`H8%0C#8kUT0smt+=EOjQOU`#zolq~>OU`Wh|<0#$t!+&?oZK+ zp`AaixEx+mISh_GnDkLMX=-_V$r+{Ay7~<8-8nx{-9x8wM?aOl3J3AcN+0SA(wj*= zEW61dZqvT(SuNUWEc^G_sItl5a-A3Yv!ABpR3ZOhBo=91=q{Y*%<4qN_&IA&&D6S3 zLVIaNmPvq*cWL{6Jj@a&lJiW60hj=2$wkYnFk#w3)AW2gvyxwvcJSwDx@h@6qj}?O z`#z*R>9;HA^QT0kn24|@mb5=R4Zrg$3{ZutEL%r7Iv7ATWz zEUQLr88;0|^4q^V_W(Rk`u@>q9|urdEOLx@*8WZHU~$yB0A=u_g-cfiP7Cg=@Mt`> z+{C1;NA_0^HpbLhg(TW5JhBXV87y1)2j#=}e(%CzdbEobWA0Gy(PWoMN|x6LA4avT z9tUb4(zE&GpZap589YB}f=v5LH^HS~Fu95NtMwYT`B0QEtf;1;3QkQ!1JeqM^Hz#L zte3lgp@ebky;h8|)Hq|5b{K$M2Xe+6MJH?)j?BnxRVgx1(Vpw_I1*N|q8R_$F4PPM z)DR{@DAmSYotPFm*&o*Gp}Q65K=_!!Y;n;HBQGO(^!X}D{Y|imK-WK8~mI8K*Y?A;WeZvg<`Ml@%dJKkd#|g_hDVCH#{$JAUGR1L250>sp!2r zl}v3Xj#qS|_0?$V*`3aEIc?qd{M25|mq_J+d>HZb-vhOjTPx#Bzb@r*zN7-|nhrL|t~jLC#me zt%H4%i_;3ti==rW2vU(^1e@$hv9b4|v{;GZTA~sOf`vc4Shj6=V2i5VjXDHfU#08n zaQpE(V?yXokXcUMeKve871+Sx73~QDspBL*d5@EsRZ0~@@%5g+8KgTdo7S#dy**Y# z%Eqs|e8}@`s=*>Bq=B$$Fn#xA9UcIqDeZ{`_h))LM@jtoUY(e{+ zox$hCLTTQkr+-Ka7=Qxz`lJk_O+R?AOj|i1XDx^)?Lg;?j+!sldvIhY(00A$s{T%@ zq_&=I;dgjL@}_sMFN+u*(;GZN@Z#5q&7Ndd(_Xgp;)*rX3xOQk^1fCSAbM_bm%O8fM)m%}+tiGkI+dC6pUJ z?}dvu?WA|sFLR#23VHaD&l^G%y}Z6pr+o6iLSzbFw#@Eu#AES|O2EChD~oX6hy@It z=Lr~w42ks@Cco}S-(ue&qaeSXBkDpemO`)}lYTJvQIw-wOzh1m0S=y^j=Urj){~rb z5g^c%-NAgXfU(a~P+}AYyp!PBQp=-Un9OPk0>bj2N zRSpMVnlsW*tq#9b+Q1zh+HKAP~t#}9K#d-ywtAD;HN zaXq2sKPd#-Bek^n1n+;Cxf2!+#U6&yHdP<$eGe#=tU%2D8WOwQe>wX^A&B++gH#Jm zW8%E}fyj+J&V)H>1pZ;bZe0O$nrV_K*#{%F|gc;9f~nbwx7(Ep`_&AVYdSplkw)%nhfYvYqJzq(H=iuJKuA^A{#dy;yg4j+!l_>!%CQBt0V`W zuKfpRDn|QJ9V6~LgWZ&*GmnET`;`X8lJ9+riIczdl-~M3%*PnM_ZY&#S1O?VdA{=J z$Y_Pp;4h%`A4>+_`d%0BZW2XZ*JR3^(awMItTT+`BG@4}D>=6IA7U1ZkEdwJQPu>s zEI#SUADb!Av!?~2l-_w??9F`M$*lTic|cM|RVmW3m0Rr%(;;~yF9?BaocFKvK28WW zY@&AHFGlN)WGn1GNyg}4(P2%~H9KehJu7t9PtcHi z7Tf9Hy1*^?sO&u+Gbhxi2s?%c1ers%CZiJ1QjZC#<*J6UF#U(m`ITHg8QS|Y@nZcb zAPykYgGoe3vZCu71R^iGCab^mpK>dVJC6?Nm|m41sh8l1HUBuxHiZ4lC-vdu2M^^P zZC?|1zQ^71R8*S;zN_6OmdE)vRnYw7X_8>~A@gT`#Rf0~34#%p#_!`d>|bs^*B9*9 z_;59Fb{IMb^>i4I(dHWXH~UrDsUQzmVhP1Oq4%QAUM4Zvoja}fEfF7YWr+myR2SV6b z9%t4P3Yx~E($l?=?~lB`hB(VV)*A}E?vwfuvv0E;I74MWKSMqChWs|% zqFfm9g^kB9*qsDD5zzZ9I7x*ItR)DxBmI93h;ApZLvS%rR*%6#c%DR)$!6MINp&=a zT(TkT@8|M3s^V&^XaIHdi%;FSgJF^a+KW8kO3eZCdj7nGuZOQOwI>vrmu#h`( zgPABk@;kwp2vf!hpoMhdGf~HPAOSmGJtv{KlBFbi3pE1Ee2wnUm5zlv7KKVliVKMz zMPkLNPn%Qh+)r#8NNJ+}-ZMrHfY6Q2lAfv28{z@oa0fyQ;q&PIZf*7kJ+Yp>ywZ$C z2Z4ML&e^>TBW)6_9ae~AHStDQMC@0jRY&S@WGyDx)A|-jx^;r_eO)kjtq2^cy=(-< z+XIg8>^4zQe3&be;WO98%0Feg)BmIwND*@B=o9sz^J8wvlpAy>5t@84HujprcP_;1 z#w^-rFgUqJebp)1hb^mA{MNBmXzQAtA5>Y8@Ai_jJA!<)K5&45>OEmBwPcCZnopHmFAkd-g@tfpG1Zk7yXICPbDmbW9 ztkD3LyYGHJ?*{}<_2;ucJb`^jk*r$P5i`YC*24Z09rnNt#|3{CkLzsv#_U*GFZ-PV zWawMWJifTK$1N?#Q36d=B!}ABOZLh0P#QFUTr3_zQtzta3))m5)0GX%0=c$1k%toR z*B#0iBp4TXB|EM*lBWVI7O6SOgAQO zJq{4kD(_$qLHvZWF*DG#*`v*`M24+~KLUhKEFHdb1F4P;bkHGuL2a9qBh@InxUkj99Rw-eg@U4yR6Xjm>P8cu1W#A!N4oNq zgBZ)KKC=n2f|aBlQm9~r&{)7Rym0W1-)X1@hsFXM%Fv1O*`sxt8U{w{s&*5_@kCSM z(T$XxluAwD(;XcL2;wTd6gMC@n6+eEW^oLY^J>%wHd()$dl2&FjHgQ?Dr;FPXy9?|C#TkD|+pc7=FW8(=UjU&6Jck(mk8}%CyD# z98|5#mmP{}jQ`AgXp%M+DL2yZu%m`zqwregm~jTPj0GEsHJ^Q%^F7zK`Kz3D-}m)t zYa6>0NfNXlqfV$Y^*cm2V@~{G@`EzeGG6@qZ}Rl317P!jBbG}>gt!qFtLlQ8hJjS@ z(d13aDVEoJ5X#`-qDd!ZhZQ{sf8z$fsGnJ(e!_#I%dZ#I?j(A^a-Z&Aw+3>v)@3s0 zrEOLzFMtsa&hQ2{@Q4xN(shgoCWHkQYk9%6f>%yZheX5tniV7bpy@L`i z=Nkcv)j*Z1`&zR7Ab=ev*MC?8{GnM->YZp6R_s47@H9e~vKq`pe>c0qrZc&n4HtA5 zYFEhzj>F-z7a=mF^yUVnLum~l81j#Y-#QuWByu&(`Q_JKsy zVm%{c`-SS81I|$foO1p+0mkZ8XYdZ>18UFD#_w|8;NSfuOz)@niB@%Qkr7avO|rQtYXqrrhyJ?toKeg4k=+x&Z+w8l1{)TY~ggOj%zH|XW8zir#$+M1)-)=D00S9%X+O|RyudENgse1F+g8AV ztG$w!1}C`S=W~vOGAL6Til__;^O*VlIFn_G!KQCuTghdso8t^a>t6CTPkjzj_R6x@>R3f|raRNpj@bp3-8YeSnskrB*C z75v)PGKsN!_wCPzucDZKne6bp0X7$jXr8jNQ{@lVDMV~0NZ4#uc1;AcbtMhd1=_+} z7vV{>T;(!SkhG-)QtCksuM*m?dz1+CHS^QM42WCuDYrywE@aTLUWM;x~OF=M`v@`tvS%+xjj9N|& zU)XWVj$j{i+GSzz^Vv+2cq1zgBjRYKqe<(Tcr%eX!S8vgyYQ^Rp^FGYTe;g%#ZTy;CV4PSY+d;Sq<%yV}xDjrtu!H`Ug#qy5@IKuTF^v+a_Q=g%-Qi24R@ zvzz&@7n1o$_^3_8S@ICY`+pWnSjmsxV?jUAAS-m<|$B!{Faf$W~4BF z^sEF)z_mvuQvOpwO3O(jpS; zwPo`kQ%X$S2F=_U%xy*zo#D|3j+Sn&6cqR{pA#)H zU*9k1j&F@m$l~TdlU(~PQ*E!F*!qPd$$QqREc{&;>`3z`6n!)+72ZcN8O-kt91n*T zD<3VjE{ync#4k2Z1ZgKhvVw~b##4WnWfWrw)`fhg^)QFhWY{8)p~d%lP|fpYT3Rfy zOp6xV2$k@mDJ6{oU=o+|vFZqoerks`YSnQA?J}>H1OP6D$UGCzS%eV*BM3&lnT*tr z<jgT8HWOGOfLfqEjyXT)kV%95;%Pd1f;3mHeu6x&Y1or@@j ztO^bDr|+ZaFSyqJ&NvffZf1M|@5zth@0fKf?OVL(+I^=(-5MLqtX4sx-Ih(4L)@5} zB-G={6lFCKDi1Q3IyRUWGhUsh7}qENdOr)x8|)6J#%robw_pYwzo>p)wEmOMzzF|- zC5Q$r0_*zw&ef&AMlL$K6u@xEz`VH>D6FMG8h(MSEl7ST#zor017MRza=SdnH7ve% z9B}fC^OAq~==3SjYoMlR-cEB>)+J!K(JjUcA3isu*_I}A*+5zC{f?s0J`=#G6^jlN zC4#jlRfG)2QP~_k2CD69JI91*fDH+v7b6sP9ED=HJ7h&UGZU+stXZUvaG#=Ohn3Gi zjVVboE;=-py5vBK*EUm3YDmXO>UVZkbjm~5jY8Eo4=ETZvr6^~~92_%GchNViyz_3fauEm__#-Bkh z{oQ|V`N{S?@C)9@UVI}2#oZ-_9#REP7F2X3)xg8@lxA>CuqtNUkM-TV`!5T7(<*ez z_IlQ>1IAc7Q3m6o4+A#8>;mAH$t#4^FlhUtHT=)h0|dXl;Un907Kn(6UsyOGX5bK9 zfb$n%+EhA$e<0>JL|l%D8LJ|HpzLwMUd{t*?+lM`p)A%B4 zW$(ZluwR6|Syr+2Z&4<=nTMyu8{jq(+D-ZCi~|Byme!TsLx;gf9i2*;PP`@924zqk zt-k=(t5q1s4io|p^3lav*z-a@x2n!xY zG&yh`?cwF2Rre!r+IAu!=?*<7OL0YVjriZxPw&0Qk3W2)L%HzTPuy5bsYKDalKd(h zQtdLEY#u$zc0JM*s#Z|FJql1MPw_C#sGQa5oi^Sl(C!nsN$8k3bS__6m=oo9F@x(O zk}Kc+AaB4Ow>FRRrP8Ioz-=Wd&7O~W{>MO_!-h88mrN1niMa&#cZaTH)K6wa|7kS# zFE}ZZjkDWBi*q3Wg~i6%%$FJ{sh<7fd4v3ZzGAsfvOU_DzW|5k|4!&FZZbTyAqD87 zwQ4v?qM|bCY?gx&O?0!lLmmRWpAFm!wBqgFY zD>&UZBWd)?`TlF4xs9vQ2SMrg7jvTI_l-`q+x-sqP}dFtJVnBF{A;Z@0>gZJzs!l= z>|`?s(S$LqN_cd(uRUG{xZT*>V6;l$Ni|l42|NT02|m9iPC;T=UK#T1 z0bp~hP+a04?IW_0ND%Cs#;ddM4l?iiEdsdtniw6fn9yjsmrxX?cM^pZP9)q6bIo-p zdr3%V25>thj#X(w3y)ETk1%^!LtDjSVoEu?^XVmhJOKS~1|;+Y9>JwwgaGBxoCKS( zFxpCKqdu9|RHflh)Wx($^;EQ4c&PS(trigqrcAEBp&lH>E?{k@Z)s0hA8x;z$ct&J z)XQS6d6J&>NBnG^;Ei{}Ak$(9flgjyY&e)|AmUJE91QO$50r1 z&+*F{estcEyR>XgbVNvS>ixmb0N1X2kiYE40Lr+)RvyM37cl%jg0Srtt`$6{y$&{+ zA;dH!Us3xPlpY4m4qkY9J?;KT_zTe435cY=J9?WulhD}af9XF}bnNEYV9wH;fLl&~ za=48d49+%*U6jpjORv7-CS^xT6{ol|2xXkCLed%5mU|F|-L6au+nq z#N@4hoqV+@Oo@%qT+fVFvg!Us6^Tck)8+<0AICV<-=z)b$WlQJHa~J$a&Rb?_RRr1 zp0b#j#jT&TI^=mSpFoBI9OjJW3)4l@xB+@jT_ZeCP*LJv2PIqNnoUAt`nG+qH6b>M zmx8y(zF#c5l_{xjt=BBw0cev3dj-F3oDNNda+;B@=b?TbR`D>cG+EPhrj|Dr?&8mZ z9r<3lcs|}O*Lhn^56hDaa~+dMg-DuMGJ->HiPCU~6*LJtsdbJ_#B%1A)zEH^bGrOD zkm&T_M0B>SZZQsgd<37uP-tLcwUuSK7BsLU4}-^lqPFE)m`Ix=-*pt_s1aQqi~V9X zAIDiqh7epMaWm6i27h6?=y#L8=7X??rNsEPn=V7G5uYW)(buYyg|!s3*h||d(KKMM zYc^hk`Tm|!ib^D9uIdAKM22OTPhSI+WD-$>h^WT8ee5C88LM) zX^-ttZn9kRuyF)#qVK!ByqfXzWfO5v z=WlHO86hBLEzX7BLF7^Nb literal 0 HcmV?d00001 From 9666b8f8b5d7cedf903f2b207bf699756dcfa557 Mon Sep 17 00:00:00 2001 From: Kamran Zafar Date: Thu, 12 Nov 2026 18:21:32 +1100 Subject: [PATCH 2/4] Draft: drop the update note --- draft/feature-toggles-in-java-without-the-if-else/index.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/draft/feature-toggles-in-java-without-the-if-else/index.md b/draft/feature-toggles-in-java-without-the-if-else/index.md index 4cf30c0a1..2dcbbd0f9 100644 --- a/draft/feature-toggles-in-java-without-the-if-else/index.md +++ b/draft/feature-toggles-in-java-without-the-if-else/index.md @@ -334,6 +334,3 @@ The starter works with Spring Boot 3.5 and 4.1. Use `flipjack-core` instead for Toggles should make releases safer without making the code worse. Put the decision at a seam, make it in one place, and let removal be a deletion. Whether or not you use Flipjack to do it, your future self, the one who has to clean up the toggles, will thank you. ---- - -*Updated 2026-11-02 for Flipjack 1.1.0: OpenFeature support, so flag platforms such as Unleash and LaunchDarkly can drive the routing, and Spring Boot 4.1 support.* From c3e667b43877d71e1561a0662d57d9d2f32c4f10 Mon Sep 17 00:00:00 2001 From: Kamran Zafar Date: Thu, 12 Nov 2026 18:41:37 +1100 Subject: [PATCH 3/4] Draft: address review comments on actuator URL, first load, router and OpenFeature caching --- .../feature-toggles-in-java-without-the-if-else/index.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/draft/feature-toggles-in-java-without-the-if-else/index.md b/draft/feature-toggles-in-java-without-the-if-else/index.md index 2dcbbd0f9..33b74e82f 100644 --- a/draft/feature-toggles-in-java-without-the-if-else/index.md +++ b/draft/feature-toggles-in-java-without-the-if-else/index.md @@ -120,7 +120,7 @@ final class PricingRouter implements PricingService { } ``` -There is still one condition, but now it is *the* condition: one per feature, in a class whose only job is routing. Every method on the interface follows the same toggle, so you can't end up with the new quote and the old discount. The combinatorial explosion from problem 2 is bounded by structure rather than by discipline. +There is still one condition, but now it is *the* condition: one per feature, in a class whose only job is routing. Every method on the interface follows the same toggle, so no call can get the new quote with the old discount. (The toggle is read on each call, so a flag flipped *between* `quote()` and `discount()` takes effect from the next call.) The combinatorial explosion from problem 2 is bounded by structure rather than by discipline. ### Principle 3: Removal should be a deletion @@ -265,7 +265,7 @@ FeatureContextProvider featureContext() { } ``` -`GET /actuator/flipjack` lists every feature with its effective state, and `?subject=alice` evaluates one for a specific user. +`GET /actuator/flipjack` lists every feature with its effective state, and `GET /actuator/flipjack/{name}?subject=alice` evaluates one for a specific user. ### Loading toggles from your own config store @@ -277,7 +277,7 @@ FeatureToggles toggles = PollingFeatureToggles.builder(toggleConfig::loadFeature .build(); ``` -`PollingFeatureToggles` calls the loader once per interval, a single bulk read, and answers every check from an in-memory snapshot, so toggle checks never touch the network. If a load fails, or a value isn't `true`/`false`, the last good snapshot is kept and calls keep routing by it. +`PollingFeatureToggles` calls the loader once per interval, a single bulk read, and answers every check from an in-memory snapshot, so toggle checks never touch the network. If a load fails, or a value isn't `true`/`false`, the last good snapshot is kept and calls keep routing by it. If the very first load fails, the service starts with every feature off, so calls take their fallbacks; call `.requireInitialLoad()` on the builder to fail startup instead. ### Using a flag platform @@ -294,7 +294,7 @@ It follows the same principles as the rest of Flipjack: - **It fails the way Principle 5 asks.** An evaluation never throws: a missing flag, an unready provider or any other error returns the default and goes to an error handler, which by default logs each problem once rather than on every call. - **Targeting comes from the same `FeatureContextProvider`.** The subject becomes the provider's targeting key, so per-user rollouts on the platform still need no signature changes. -- **It needs no cache.** Providers already keep flags in memory and update them by streaming or polling. +- **It usually needs no cache.** Most providers keep flags in memory and update them by streaming or polling. Check yours: flagd's Java provider, for example, evaluates over RPC by default and only keeps flags in memory in its in-process mode. The one thing you give up is Principle 4's startup check: OpenFeature can't list its flags, so a misspelt name isn't caught at boot. It shows up as a "flag not found" warning the first time it's evaluated. From a166a9cf7b859ec3cacedbcd3475127817e6e6cc Mon Sep 17 00:00:00 2001 From: Kamran Zafar Date: Thu, 12 Nov 2026 19:14:50 +1100 Subject: [PATCH 4/4] Draft: Flipjack 1.1.1 checks fallback beans at startup --- draft/feature-toggles-in-java-without-the-if-else/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/draft/feature-toggles-in-java-without-the-if-else/index.md b/draft/feature-toggles-in-java-without-the-if-else/index.md index 33b74e82f..74bbe3df6 100644 --- a/draft/feature-toggles-in-java-without-the-if-else/index.md +++ b/draft/feature-toggles-in-java-without-the-if-else/index.md @@ -241,7 +241,7 @@ toggles.override(Features.NEW_PRICING, false); // kill switch during an incide ### Failing at startup, not at 2am -Routes are resolved and validated when the proxy is built: a missing fallback bean, a `fallbackMethod` with the wrong signature, or an annotated method that isn't on any interface all stop the application from starting. The consistency check from Principle 4 runs automatically in Spring Boot, and can be made strict: +Routes are resolved and validated at startup: a missing fallback bean, a `fallbackMethod` with the wrong signature, or an annotated method that isn't on any interface all stop the application from starting. The consistency check from Principle 4 runs automatically in Spring Boot, and can be made strict: ```yaml flipjack: @@ -326,7 +326,7 @@ That is the useful way to think about it. Flipjack isn't a replacement for Unlea org.kamranzafar.flipjack flipjack-spring-boot-starter - 1.1.0 + 1.1.1 ```