Archive for the ‘en-US’ Category
(temporary testing) Mapping pages
- [DevoxxFR] Kill Your Branches, Do Feature Toggles
- [DevoxxFR] An Ultrasonic Adventure!
- [DevoxxFR] How to be a Tech Lead in an XXL Pizza Team Without Drowning
- [DevoxxFR 2017] Why Your Company Should Store All Its Code in a Single Repo
- [DevoxxFR 2017] Introduction to the Philosophy of Artificial Intelligence
- [DevoxxFR 2017] Terraform 101: Infrastructure as Code Made Simple
- [DevoxxFR 2018] Deploying Microservices on AWS: Compute Options Explored at Devoxx France 2018
- [DevoxxFR 2018] Software Heritage: Preserving Humanity's Software Legacy
- [DevoxxFR 2018] Apache Kafka: Beyond the Brokers – Exploring the Ecosystem
- [DevoxxFR 2018] Are you "merge" or "rebase" oriented?
- A Decade of Devoxx FR and Java Evolution: A Detailed Retrospective and Forward-Looking Analysis
- [DevoxxFR 2022] Exploiter facilement des fonctions natives avec le Projet Panama depuis Java
- Kafka Streams @ Carrefour : Traitement big data à la vitesse de l’éclair
- [DevoxxFR 2022] Père Castor 🐻, raconte-nous une histoire (d’OPS)
- [DevoxFR 2022] Cracking Enigma: A Tale of Espionage and Mathematics
- [VivaTech 2021] Tech to Rethink Our Workplace at VivaTech 2021
- [VivaTech 2021] Emmanuel Macron : Championing European Scale-Ups and Innovation
- [DevoxxFR 2021] Maximizing Productivity with Programmable Ergonomic Keyboards: Insights from Alexandre Navarro
- [Devoxx FR 2021] IoT Open Source at Home
- [VivaTech 2019] Funding and Growing Tomorrow's Unicorns
- [VivaTech 2019] What's Your Next Bet
- [Devoxx France 2021] Overcoming Impostor Syndrome: Practical Tips
- [VivaTech 2018] How VCs Are Growing Tomorrow's Euro-corns
- [ScalaDays 2019] Techniques for Teaching Scala
- Kotlin Native Concurrency Explained by Kevin Galligan
- [DevoxxFR 2018] Java in Docker: Best Practices for Production
- [DevoxxFR 2018] Watch Out! Don't Plug in That USB, You Might Get Seriously Hacked!
- Gradle: A Love-Hate Journey at Margot Bank
- Navigating the Application Lifecycle in Kubernetes
- [DevoxxFR 2019] Back to Basics: Stop Wasting Time with Dates
- "All Architects !": Empowering Every Developer as an Architect
- Navigating the Challenges of Legacy Systems
- "A monolith, or nothing!": Embracing the Monolith at Ornikar
- Event Sourcing Without a Framework: A Practical Approach
- [DevoxxFR 2023] Hexagonal Architecture in 15 Minutes: Simplifying Complex Systems
- [DevoxxFR 2023] Tests, an Investment for the Future: Building Reliable Software
- Ce que l’open source peut apprendre des startups : Une perspective nouvelle
- Et si on parlait un peu de sécurité ? Un guide pour les développeurs
- Navigating the Reactive Frontier: Oleh Dokuka’s Reactive Streams at Devoxx France 2023
- Meet with Others: tools for speech
- Gestion des incidents : Parler et agir
- Decoding Shazam: Unraveling Music Recognition Technology
- [AWS Summit Berlin 2023] Go-to-Market with Your Startup: Tips and Best Practices from VC Investors
- [KotlinConf'23] The Future of Kotlin is Bright and Multiplatform
- [KotlinConf'2023] Coroutines and Loom: A Deep Dive into Goals and Implementations
- [GopherCon UK 2022] Leading in Tech
- [Spring I/O 2023] Multitenant Mystery: Only Rockers in the Building by Thomas Vitale
- [Spring I/O 2023] Do You Really Need Hibernate?
- [Spring I/O 2023] Managing Spring Boot Application Secrets: Badr Nass Lahsen
- [KotlinConf2023] Java and Kotlin: A Mutual Evolution
- A Tricky Java Question
- SnowFlake❄: Why does SUM() return NULL instead of 0?
- JpaSystemException: A collection with cascade="all-delete-orphan" was no longer referenced by the owning entity instance
- SpringBatch: How to have different schedules, per environment, for instance: keep the fixedDelay=60000 in prod, but schedule with a Cron expression in local dev?
- 🚀 Making Spring AOP Work with Struts 2: A Powerful Combination! 🚀
- 🚀 Mastering Flyway Migrations with Maven
- [Devoxx FR 2024] Instrumenting Java Applications with OpenTelemetry: A Comprehensive Guide
- [Devoxx FR 2024] Mastering Reproducible Builds with Apache Maven: Insights from Hervé Boutemy
- Understanding Dependency Management and Resolution: A Look at Java, Python, and Node.js
- [PyData Paris 2024] Exploring Quarto Dashboard for Impactful and Visual Communication
- Onyxia: A User-Centric Interface for Data Scientists in the Cloud Age
- Boosting AI Reliability: Uncertainty Quantification with MAPIE
- Predictive Modeling and the Illusion of Signal
- Building Intelligent Data Products at Scale
- Renovate/Dependabot: How to Take Control of Dependency Updates
- [PyData Global 2024] Making Gaussian Processes Useful
- [AWS Summit Paris 2024] Winning Fundraising Strategies for 2024
- [DevoxxFR 2024] Super Tech’Rex World: The Assembler Strikes Back
- [KotlinConf2024] Hacking Sony Cameras with Kotlin
- [DevoxxFR 2024] Going AOT: Mastering GraalVM for Java Applications
- Java's Emerging Role in AI and Machine Learning: Bridging the Gap to Production
- CTO Perspective: Choosing a Tech Stack for Mainframe Rebuild
- Elastic APM: When to Use @CaptureSpan vs. @CaptureTransaction?
- How to Bypass Elasticsearch’s 10,000-Result Limit with the Scroll API
- Problem: Spring JMS MessageListener Stuck / Not Receiving Messages
- Efficient Inter-Service Communication with Feign and Spring Cloud in Multi-Instance Microservices
- Mastering DNS Configuration: A, AAAA, CNAME, and Best Practices with OVH
- Advanced Encoding in Java, Kotlin, Node.js, and Python
- Understanding volatile in Java: A Deep Dive with a Cloud-Native Use Case
- Quick and dirty script to convert WordPress export file to Blogger / Atom XML
- Why Project Managers Must Guard Against “Single Points of Failure” in Human Capital
- RSS to EPUB Converter: Create eBooks from RSS Feeds
- Essential Security Considerations for Docker Networking
- CTO's Wisdom: Feature Velocity Over Premature Scalability in Early-Stage Startups
- AWS S3 Warning: “No Content Length Specified for Stream Data” – What It Means and How to Fix It
- The CTO's Tightrope Walk: Deeper into the Hire vs. Outsource Dilemma
- Understanding Chi-Square Tests: A Comprehensive Guide for Developers
- Creating EPUBs from Images: A Developer's Guide to Digital Publishing
- The Fractional CTO: A Strategic Ally or a Risky Gamble?
- Orchestrating Progress: A CTO's Strategy for Balancing Innovation and Stability
- 🚀 Making Spring AOP Work with Struts 2: A Powerful Combination! 🚀
- Bridging the Divide: CTO Communication with Aliens (aka: Non-Technical Stakeholders)
- 5 Classic Software Security Holes Every Developer Should Know
- Advanced Java Security: 5 Critical Vulnerabilities and Mitigation Strategies
- Using Redis as a Shared Cache in AWS: Architecture, Code, and Best Practices
- 🗄️ AWS S3 vs. MinIO – Choosing the Right Object Storage
- Demystifying Parquet: The Power of Efficient Data Storage in the Cloud
- ️ Prototype Pollution: The Silent JavaScript Vulnerability You Shouldn’t Ignore
- Mastering Information Structure: A Deep Dive into Lists and Nested Lists Across Document Formats
- Applications Web with Spring Boot 2.0
- Script to clean WSL and remove Ubuntu from Windows 11
- [Oracle Dev Days 2025] From JDK 21 to JDK 25: Jean-Michel Doudoux on Java’s Evolution
[Oracle Dev Days 2025] From JDK 21 to JDK 25: Jean-Michel Doudoux on Java’s Evolution
Jean-Michel Doudoux, a renowned Java Champion and Sciam consultant, delivered a session, charting Java’s evolution from JDK 21 to JDK 25. As the next Long-Term Support (LTS) release, JDK 25 introduces transformative features that redefine Java development. Jean-Michel’s talk provided a comprehensive guide to new syntax, APIs, JVM enhancements, and security measures, equipping developers to navigate Java’s future with confidence.
Enhancing Syntax and APIs
Jean-Michel began by exploring syntactic improvements that streamline Java code. JEP 456 in JDK 22 introduces unnamed variables using _, improving clarity for unused variables. JDK 23’s JEP 467 adds Markdown support for Javadoc, easing documentation. In JDK 25, JEP 511 simplifies module imports, while JEP 512’s implicit classes and simplified main methods make Java more beginner-friendly. JEP 513 enhances constructor flexibility, enabling pre-constructor logic. These changes collectively minimize boilerplate, boosting developer efficiency.
Expanding Capabilities with New APIs
The session highlighted APIs that broaden Java’s scope. The Foreign Function & Memory API (JEP 454) enables safer native code integration, replacing sun.misc.Unsafe. Stream Gatherers (JEP 485) enhance data processing, while the Class-File API (JEP 484) simplifies bytecode manipulation. Scope Values (JEP 506) improve concurrency with lightweight alternatives to thread-local variables. Jean-Michel’s practical examples demonstrated how these APIs empower developers to craft modern, robust applications.
Strengthening JVM and Security
Jean-Michel emphasized JVM and security advancements. JEP 472 in JDK 25 restricts native code access via --enable-native-access, enhancing system integrity. The deprecation of sun.misc.Unsafe aligns with safer alternatives. The removal of 32-bit support, the Security Manager, and certain JMX features reflects Java’s modern focus. Performance boosts in HotSpot JVM, Garbage Collectors (G1, ZGC), and startup times via Project Leyden (JEP 483) ensure Java’s competitiveness.
Boosting Productivity with Tools
Jean-Michel covered enhancements to Java’s tooling ecosystem, including upgraded Javadoc, JCMD, and JAR utilities, which streamline workflows. New Java Flight Recorder (JFR) events improve diagnostics. He urged developers to test JDK 25’s early access builds to prepare for the LTS release, highlighting how these tools enhance efficiency and scalability in application development.
Navigating JDK 25’s LTS Future
Jean-Michel wrapped up by emphasizing JDK 25’s role as an LTS release with extended support. He encouraged proactive engagement with early access programs to adapt to new features and deprecations. His session offered a clear, actionable roadmap, empowering developers to leverage JDK 25’s innovations confidently. Jean-Michel’s expertise illuminated Java’s trajectory, inspiring attendees to embrace its evolving landscape.
Links:
Hashtags: #Java #JDK25 #LTS #JVM #Security #Sciam #JeanMichelDoudoux
[DefCon32] Changing Global Threat Landscape
Rob Joyce, a distinguished former National Security Agency (NSA) official, joined Jeff Moss, known as The Dark Tangent and founder of DEF CON, for a riveting fireside chat at DEF CON 32. Their discussion delved into the dynamic evolution of global cyber threats, with a particular focus on the transformative role of artificial intelligence (AI) in reshaping cybersecurity. Rob, recently retired after 34 years at the NSA, brought a wealth of experience from roles such as Cybersecurity Coordinator at the White House and head of the NSA’s Tailored Access Operations. Jeff facilitated a conversation that explored how AI is redefining defense strategies and the broader implications for global security, offering insights into the challenges and opportunities ahead.
The Evolution of Cyber Threats
Rob began by reflecting on his extensive career at the NSA, where he witnessed the transformation of cyber threats from isolated incidents to sophisticated, state-sponsored campaigns. He highlighted how adversaries now leverage AI to enhance attack vectors, such as spear-phishing and polymorphic malware, which adapt dynamically to evade detection. Rob emphasized that the scale and speed of these threats demand a shift from reactive to proactive defenses, underscoring the importance of understanding adversaries’ intentions through signals intelligence. His experience during the Iraq War as an issue manager provided a unique perspective on the strategic use of cyber intelligence to counter evolving threats.
AI’s Dual Role in Cybersecurity
The conversation pivoted to AI’s dual nature as both a tool for attackers and defenders. Rob explained how AI enables rapid analysis of vast datasets, allowing defenders to identify patterns and anomalies that would be impossible for human analysts alone. However, he cautioned that adversaries exploit similar capabilities to craft advanced persistent threats (APTs) and automate large-scale attacks. Jeff probed the balance between automation and human oversight, to which Rob responded that AI-driven tools, like those developed by the NSA, are critical for scaling defenses, particularly for protecting critical infrastructure. The integration of AI, he noted, is essential to keep pace with the growing complexity of cyber threats.
Strengthening Defenses Through Collaboration
Rob stressed the importance of bipartisan support for cybersecurity, noting that stopping foreign adversaries is a shared goal across administrations. He highlighted the role of the Office of the National Cyber Director (ONCD) in convening agencies to synchronize efforts, citing examples where ground-up collaboration among agencies has led to effective threat mitigation. Jeff asked about the resource gap, and Rob acknowledged that the scope of threats often outpaces available resources. He advocated for widespread adoption of two-factor authentication and secure software development practices, such as moving away from memory-unsafe languages, to build more defensible systems.
Building a Resilient Future
Concluding, Rob expressed optimism about the trajectory of cybersecurity, emphasizing that automation can alleviate the burden on security teams, particularly for 24/7 operations. He underscored the need for robust teams and innovative technologies to address the relentless pace of vulnerabilities exploited by attackers. Jeff echoed this sentiment, encouraging the DEF CON community to contribute to shaping a secure digital landscape. Their dialogue highlighted the critical role of collaboration between government, industry, and the hacker community in navigating the ever-changing threat landscape.
Links:
[GoogleIO2024] AI Powered Solutions: Reimagining Health and Science for Society
James Manyika facilitates a profound exchange with Kay Firth-Butterfield and Lloyd Minor on AI’s healthcare revolution. They address ethical governance, precision strategies, and systemic challenges, envisioning AI as a catalyst for equitable, proactive medicine.
Trajectories in AI Ethics and Medical Leadership
Kay’s transition from judiciary to AI ethics, as the first Chief AI Ethics Officer in 2014, underscores her commitment to responsible deployment. Leading Good Tech Advisory, she guides organizations in balancing benefits and risks, contributing to UNESCO and OECD boards. Her Time 100 recognition highlights global influence.
Lloyd’s surgeon-scientist background informs Stanford Medicine’s AI integration for precision health. His leadership advances biomedical revolutions, emphasizing multimodal data for disease prevention. Both note AI’s accelerated urgency post-generative models, shifting from niche to mainstream.
Kay’s books on AI and human rights, like addressing modern slavery, exemplify ethical focus. Lloyd’s vision transforms “sick care” to health maintenance, leveraging wearables and genetics.
AI’s Role in Diagnostics and Patient Care
AI evolves from narrow tasks to multimodal systems, aiding diagnostics via imaging and notes. Lloyd’s ambient listening pilots reduce administrative loads, enhancing interactions—pilots show 70% time savings. Kay stresses elder care, enabling home-based living amid aging populations.
Privacy demands differential techniques for aggregate insights. Cultural variances affect data sharing; UK’s NHS facilitates it, unlike insurance-driven systems.
Bias mitigation requires diverse datasets; Kay advocates inclusive governance to prevent disparities.
Integrating Multimodal Data for Preventive Health
Lloyd urges multimodal assimilation—wearables, genetics, images—for comprehensive health profiles, predicting diseases early. This shifts US systems from reactive to preventive, addressing access inequities.
Kay highlights global applications, like AI for chronic conditions in underserved areas. Developers should pursue passions, from elder support to innovative diagnostics.
International standards, per Kay’s UN work, ensure equitable benefits.
Governance and Future Societal Transformations
Kay calls for humanity-wide AI frameworks, addressing biases and planetary impacts. Lloyd envisions AI democratizing expertise, improving outcomes globally.
The conversation inspires collaborative innovation for healthier futures.
Links:
[DotJs2025] Live Coding with Ryan Dahl: Deno and OpenTelemetry
Observability’s quest in serverless seas once drowned in bespoke boilerplate; enter Deno’s alchemy, fusing runtime rigor with OpenTelemetry’s ubiquity. Ryan Dahl, Node’s progenitor and Deno Land’s CEO, live-wove this tapestry at dotJS 2025, showcasing zero-config traces illuminating JS’s shadowy underbelly. From UCSD’s mathematical meadows to ML’s machine wilds, Ryan’s odyssey—secure-by-default Deno, TypeScript’s native nest—now embraces OTEL’s triad: logs, metrics, spans.
Ryan’s canvas: a toy API, user IDs fetched, errors eventual—mundane yet ripe for revelation. Deno’s infusion: Deno.metrics(), console.log piped to OTEL, spans auto-spanning HTTP arcs. Exporter’s elegance: Jaeger console, traces unfurling waterfalls—entrypoints to exits, attributes annotating arcs. Live, Ryan scaffolded: import OTEL, configure exporter, instrument fetches—redeploy to Deno Deploy, logs and traces blooming in tandem. Nanoseconds’ narrative: cold starts eclipsed, polyglot peace via WIT interfaces—Rust greeters yielding to TS handlers.
This symbiosis scales: production probes sans proxies, Deno Deploy’s horizon harboring holistic views. Ryan’s aside: Oracle’s JS trademark tyranny—a cease-and-desist specter stifling “JSConf”—spurred javascript.tm’s petition, amassing allies against anachronistic anchors.
Deno’s decree: OTEL’s open arms, JS’s joyful instrumentation—debugging demystified, deployments discerned.
Instrumentation’s Instantaneity
Ryan rendered realms: metrics via Deno.metrics(), logs laced with OTEL, spans spanning sans strife. Jaeger’s vista: waterfalls whispering workflows, attributes authoring arcs—live, a fetch’s fate traced, errors etched eternally.
Horizons and Heresies
Deno Deploy’s dawn: traces native, nanoseconds’ narrative. Ryan rallied: sign javascript.tm, reclaim JS’s soul—petition’s progress, public’s power against Oracle’s overhang.
Links:
[DefCon32] Fireside Chat – The Dark Tangent and DNSA Anne Neuberger
Jeff Moss, known as The Dark Tangent, founder of DEF CON, engages in a dynamic fireside chat with Anne Neuberger, Deputy National Security Advisor for Cyber and Emerging Technology. Their conversation at DEF CON 32 explores pressing cybersecurity issues, including artificial intelligence and quantum computing, from the White House’s perspective. Jeff and Anne discuss how the hacker community can influence policy, fostering collaboration to enhance global digital resilience.
Navigating Emerging Technologies
Anne opens by outlining her role in shaping the Biden Administration’s cybersecurity policies, emphasizing the transformative potential of AI and quantum computing. She highlights the need for resilient digital systems, given their critical role in hospitals and power grids. Jeff complements this by noting DEF CON’s history of hosting government speakers, underscoring the importance of dialogue between hackers and policymakers.
Strengthening Global Cooperation
The discussion shifts to international cybersecurity cooperation, with Anne detailing efforts to align allies against digital threats. She explains how coordinated responses can de-escalate conflicts, reducing the risk of cyberattacks by nation-states or criminals. Jeff probes the practicalities of these partnerships, highlighting the hacker community’s role in testing and refining these strategies.
Engaging the Hacker Community
Anne emphasizes the DEF CON community’s unique ability to identify vulnerabilities and propose innovative solutions. She encourages hackers to engage with government initiatives, leveraging tools like generative AI to patch vulnerabilities swiftly. Jeff reinforces this, noting that DEF CON’s open forum allows for candid feedback, shaping policies that reflect real-world challenges.
Building a Resilient Future
Concluding, Anne reflects on her privilege to serve in government, driven by a commitment to freedom and security. She invites hackers to collaborate on building robust digital systems, ensuring safety for critical infrastructure worldwide. Jeff echoes this call, envisioning DEF CON as a catalyst for policy improvements, with Anne’s return next year symbolizing ongoing partnership.
Links:
[DefCon32] If Existing Cyber Vulns Magically Disappeared, What Next
Dr. Stefanie Tompkins, Director of DARPA, joined by Dr. Renee Wegrzyn, inaugural Director of ARPA-H, explores a hypothetical scenario where all cyber vulnerabilities vanish overnight. Their session at DEF CON 32, moderated interactively, delves into the hacker community’s contributions to cybersecurity and the next frontier of challenges, from supply chain vulnerabilities to quantum computing. Stefanie and Renee emphasize the synergy between DARPA, ARPA-H, and the DEF CON community in shaping a secure digital future.
The Hacker Community’s Legacy
Stefanie opens by celebrating the DEF CON community’s role in challenging the status quo, citing DARPA’s Cyber Grand Challenge and Cyber Fast Track as catalysts for vulnerability detection advancements. She highlights how diverse perspectives have driven innovations like the ARPANET, the precursor to the internet. Stefanie underscores the community’s potential to address future threats, encouraging active collaboration with agencies like DARPA.
Envisioning a Vulnerability-Free World
Renee explores the implications of a world without cyber vulnerabilities, questioning what new challenges would emerge. She discusses ARPA-H’s Apex program, which leverages generative AI to create novel antigen sequences for unaddressed viruses, illustrating how hacker ingenuity could pivot to proactive solutions. Renee emphasizes the need to secure health tech ecosystems, particularly hospitals, against cyberattacks.
Tackling Supply Chain and Quantum Challenges
Stefanie, a geologist by training, shares her focus on supply chain vulnerabilities, given their critical role in global technology ecosystems. She also addresses quantum computing’s uncertain future, noting DARPA’s efforts to determine its transformative potential versus obsolescence. Stefanie’s insights highlight the need for rigorous questioning to guide technological development, inviting hackers to contribute ideas.
Fostering Collaborative Innovation
Concluding, Renee and Stefanie call for continued partnership with the DEF CON community to solve complex problems. They encourage attendees to share ideas with DARPA and ARPA-H, emphasizing that transformative solutions arise from collective creativity. Their vision for a resilient digital and health infrastructure inspires hackers to shape the next era of cybersecurity innovation.
Links:
[DefCon32] DriverJack: Turning NTFS and Emulated ROFs into an Infection
Alessandro Magnosi, a security researcher at the British Standards Institute, unveils an innovative technique for loading malicious drivers on Windows 11 by exploiting NTFS features and emulated read-only filesystems (ROFs). His presentation at DEF CON 32 explores how advancements in Windows security, such as Driver Signature Enforcement (DSE) and Hypervisor-protected Code Integrity (HVCI), have pushed attackers to exploit new vulnerabilities. Alessandro’s work provides actionable detection strategies to counter these sophisticated threats.
Exploiting NTFS and ROFs
Alessandro introduces his DriverJack technique, which manipulates NTFS and emulated CDFS vulnerabilities to bypass modern Windows protections. By exploiting previously identified flaws in emulated filesystems, Alessandro demonstrates how attackers can covertly install malicious drivers. His approach, developed at the British Standards Institute, leverages these weaknesses to achieve persistence, evading detection mechanisms designed to thwart traditional malware deployment.
Bypassing Security Mechanisms
Delving deeper, Alessandro explains how DriverJack circumvents DSE and HVCI. He explores alternative malware delivery methods in usermode, integrating with tools like Kernel Driver Utility (KDU) and Canal Forge when HVCI is disabled. Alessandro highlights the challenges of exploiting modern CPUs, noting that outdated hardware exacerbates vulnerabilities, making timely updates critical for system security.
Detection and Mitigation Strategies
Alessandro provides practical Indicators of Compromise (IOCs), such as monitoring for privilege escalations to SYSTEM or TrustedInstaller, drive letter changes, and alterations in the NT object manager. He advocates for runtime hash verification of driver load events to detect discrepancies, ensuring robust defense against DriverJack. His publicly available proof-of-concept on GitHub empowers researchers to test and refine these countermeasures.
Strengthening System Defenses
Concluding, Alessandro urges organizations to prioritize hardware updates and implement cross-checks for driver integrity. His work underscores the evolving nature of cyber threats, encouraging the cybersecurity community to stay vigilant. By sharing DriverJack’s methodologies, Alessandro inspires proactive measures to safeguard Windows systems against emerging exploits.
Links:
[DevoxxGR2025] Orchestration vs. Choreography: Balancing Control and Flexibility in Microservices
At Devoxx Greece 2025, Laila Bougria, representing Particular Software, delivered an insightful presentation on the nuances of orchestration and choreography in microservice architectures. Leveraging her extensive banking industry experience, Laila provided a practical framework to navigate the trade-offs of these coordination strategies, using real-world scenarios to guide developers toward informed system design choices.
The Essence of Microservice Interactions
Laila opened with a relatable story about navigating the mortgage process, underscoring the complexity of interservice communication in microservices. She explained that while individual services are streamlined, the real challenge lies in orchestrating their interactions to deliver business value. Orchestration employs a centralized component to direct workflows, maintaining state and issuing commands, much like a conductor guiding a symphony. Choreography, by contrast, embraces an event-driven model where services operate autonomously, reacting to events with distributed state management. Through a loan broker example, Laila illustrated how orchestration simplifies processes like credit checks and offer ranking by centralizing control, yet risks creating dependencies that can halt workflows if services fail. Choreography, facilitated by an event bus, enhances autonomy but complicates tracking the overall process, potentially obscuring system behavior.
Navigating Coupling and Resilience
Delving into the mechanics, Laila highlighted the distinct coupling profiles of each approach. Orchestration often leads to efferent coupling, with the central component relying on multiple downstream services, necessitating resilience mechanisms like retries or circuit breakers to mitigate failures. For instance, if a credit scoring service is unavailable, the orchestrator must handle retries or fallback strategies. Choreography, however, increases afferent coupling through event subscriptions, which can introduce bidirectional dependencies when addressing business failures, such as reversing a loan if a property deal collapses. Laila stressed the importance of understanding coupling types—temporal, contract, and control—to make strategic decisions. Asynchronous communication in orchestration reduces temporal coupling, while choreography’s event-driven nature supports scalability but challenges visibility, as seen in her banking workflow example where emergent behavior obscured process clarity.
Addressing Business Failures and Workflow Evolution
Laila emphasized the critical role of managing business failures, or compensating flows, where actions must be undone due to unforeseen events, like a failed property transaction requiring the reversal of interest provisions or direct debits. Orchestration excels here, leveraging existing service connections to streamline reversals. In contrast, choreography demands additional event subscriptions, risking complex bidirectional coupling, as demonstrated when adding a background check to a loan process introduced order dependencies. Laila introduced the concept of “passive-aggressive publishers,” where services implicitly rely on others to act on events, akin to expecting a partner to address a chaotic kitchen without direct communication. She advocated for explicit command-driven interactions to clarify dependencies, ensuring system robustness. Additionally, Laila addressed workflow evolution, noting that orchestration simplifies modifications by centralizing changes, while choreography requires careful management to avoid disrupting event-driven flows.
A Strategic Decision Framework
Concluding her talk, Laila offered a decision-making framework anchored in five questions: the nature of communication (synchronous or asynchronous), the complexity of prerequisites, the extent of compensating flows, the likelihood of domain changes, and the need for centralized responsibility. Orchestration suits critical workflows with frequent changes or complex dependencies, such as banking processes requiring clear state visibility. Choreography is ideal for stable domains with minimal prerequisites, like retail order systems. By segmenting workflows into sub-processes, developers can apply the appropriate pattern strategically, blending both approaches for optimal outcomes. Laila’s banking-inspired insights provide a practical guide for architects to craft systems that balance control, flexibility, and maintainability.
Links:
Script to clean WSL and remove Ubuntu from Windows 11
Here is a fully automated PowerShell script that will:
-
Unregister and remove all WSL distros
-
Reset WSL to factory defaults
-
Optionally reinstall WSL cleanly (commented out)
⚠️ You must run this script as Administrator
# =====================================================
# WSL Full Reset Script for Windows 11
# Removes all distros and resets WSL system features
# MUST BE RUN AS ADMINISTRATOR
# =====================================================
Write-Host "`n== STEP 1: List and remove all WSL distros ==" -ForegroundColor Cyan
$distros = wsl --list --quiet
foreach ($distro in $distros) {
Write-Host "Unregistering WSL distro: $distro" -ForegroundColor Yellow
wsl --unregister "$distro"
}
Start-Sleep -Seconds 2
Write-Host "`n== STEP 2: Disable WSL-related Windows features ==" -ForegroundColor Cyan
dism.exe /online /disable-feature /featurename:VirtualMachinePlatform /norestart
dism.exe /online /disable-feature /featurename:Microsoft-Windows-Subsystem-Linux /norestart
Start-Sleep -Seconds 2
Write-Host "`n== STEP 3: Uninstall WSL kernel update (if present) ==" -ForegroundColor Cyan
$wslUpdate = Get-AppxPackage -AllUsers | Where-Object { $_.Name -like "*Microsoft.WSL2*" }
if ($wslUpdate) {
winget uninstall --id "Microsoft.WSL2" --silent
} else {
Write-Host "No standalone WSL kernel update found." -ForegroundColor DarkGray
}
Start-Sleep -Seconds 2
Write-Host "`n== STEP 4: Clean leftover configuration files ==" -ForegroundColor Cyan
$paths = @(
"$env:USERPROFILE\.wslconfig",
"$env:APPDATA\Microsoft\Windows\WSL",
"$env:LOCALAPPDATA\Packages\CanonicalGroupLimited*",
"$env:LOCALAPPDATA\Docker",
"$env:USERPROFILE\.docker"
)
foreach ($path in $paths) {
Write-Host "Removing: $path" -ForegroundColor DarkYellow
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue $path
}
Write-Host "`n== STEP 5: Reboot Required ==" -ForegroundColor Magenta
Write-Host "Please restart your computer to complete the WSL reset process."
# Optional: Reinstall WSL cleanly (after reboot)
# Uncomment the lines below if you want the script to also reinstall WSL
<#
Write-Host "`n== STEP 6: Reinstall WSL ==" -ForegroundColor Cyan
wsl --install
#>