architecture

A collection of 17 posts

A Java geek
  • Me
  • Books
  • Speaking
  • Mentions
  • Focus
Nov 26, 2023 architecture microservices system design

Chopping the monolith in a smarter way

In my previous post Chopping the Monolith, I explained that some parts of a monolith are pretty stable and only the fast-changing parts are worth being 'chopped.' I turned the post into a talk and presented it at several conferences. I think it’s pretty well received; I believe it’s because most developers understand, or have direct experience, that microservices are not a good fit for traditional organizations, as per Conway’s Law.

Nicolas Fränkel
Feb 26, 2023 spring security open policy agent architecture solution architecture

Make your security policy auditable

Last week, I wrote about putting the right feature at the right place. I used rate limiting as an example, moving it from a library inside the application to the API Gateway. Today, I’ll use another example: authentication and authorization. Securing a Spring Boot application I’ll keep using Spring Boot in the following because I’m familiar with it. The Spring Boot application offers a REST endpoint to check employees' salaries.

Nicolas Fränkel
Feb 19, 2023 architecture software architecture system architecture solution architecture

The right feature at the right place

Before moving to Developer Relations, I transitioned from Software Architect to Solution Architect long ago. It’s a reasonably common career move. The problem in this situation is two-fold: You know perfectly well software librariesYou don’t know well infrastructure components It seems logical that people in this situation try to solve problems with the solutions they are most familiar with. However, it doesn’t mean it’s the best approach.

Nicolas Fränkel
Nov 13, 2022 spring boot architecture microservices

Spring Modulith: have we reached modularity maturity?

One of the main reasons to design microservices is that they enforce strong module boundaries. However, the cons of microservices are so huge that it’s like chopping off your right hand to learn to write with the left one; there are more manageable (and less painful!) ways to achieve the same result. Even since the microservices craze started, some cooler heads have prevailed.

Nicolas Fränkel
May 22, 2022 architecture microservices system design

Chopping the monolith - the demo

In my previous blog post Chopping the monolith, I explained my stance on microservices and why it shouldn’t be your golden standard. However, I admitted that some parts of the codebase were less stable than others and had to change more frequently. I proposed 'chopping' these few parts to cope with this requirement while keeping the monolith intact. As Linus Torvalds once wrote: Talk is cheap, show me the code!

Nicolas Fränkel
Apr 24, 2022 architecture microservices system design

Chopping the monolith

If you attend conferences or read technical articles, you could think that microservices are the correct and only way to build a system at the moment. Despite some pushback from cooler heads, the default architecture is microservices. In this post, I’d like to argue why it’s wrong. I’ll first get back to the origin of microservices and the fundamental reason to use them. Then, I’ll describe why microservices don’t fit most organizations' structures.

Nicolas Fränkel
Mar 27, 2022 architecture microservices system design

APISIX, an API Gateway the Apache way

During the pioneer area of the World Wide Web, the content was static. To serve it, a group of developers created a web server, which is now known as the Apache Web Server. The Apache Web Server is built around a module architecture. Developers created a module to run CGI scripts to add dynamic content to the lot. Users wrote early CGI scripts in Perl.

Nicolas Fränkel
Dec 5, 2021 spring boot tip architecture demo

Multiple Spring Boot applications in the same project

I frequently use the Spring Boot framework in my demos. The latest one is no different. It shows how to achieve CQRS using two different code paths: the command part is implemented via Spring Data JPAthe query part via jOOQ My use case is a banking application that offers a REST layer allowing clients to call any parts.

Nicolas Fränkel
Jun 28, 2020 architecture system architecture state

The illusion of statelessness

Some libraries, frameworks, components, and architectures either encourage statelessness, or make it a requirement. While statelessness has a lot of benefits, it’s unfortunately rarely possible in the real world. In this post, I’d like to detail this stance of mine a bit. State in Functional Programming Functional Programming is based on a set of principles.

Nicolas Fränkel
May 24, 2020 automation workflow architecture

Automating a conference submission workflow: deploying to production

In the first post of this series, we detailed the setup of a software to automate submissions to conferences. In the second one, we configured the integration endpoints. This third post is dedicated to the deployment of the solution to production. To Cloud or not to Cloud? To decide what to do, the first step is to ask oneself whether to host: On-premiseIn the CloudOr even use my own machine First, let’s remove on-premise from the options.

Nicolas Fränkel
May 17, 2020 automation workflow architecture

Automating a conference submission workflow: integrating the solution

In the previous post, I described a poster child for automation: managing the repetitive tasks around a conference submission workflow. I wrote about the setup, and how to use ngrok to redirect webhooks to my computer. This week, I’d like to write about some of the hiccups I encountered along the way. Registering a Trello webhook Most SaaS providers allow to register webhooks through their GUI.

Nicolas Fränkel
May 10, 2020 automation workflow architecture

Automating a conference submission workflow: the setup

Even given the current situation, part of my Developer Advocate job is to talk at (virtual) conferences. Sometimes, organizers invite me. Yet, most of the times, I need to take part in a CfP. With the sheer numbers of conferences I submit to, I need a tool to manage the status of each submission. Since I started, Trello has been my tool of choice. I’ve a dedicated board with several defined columns: backlog, abandoned, submitted, rejected, submitted and done.

Nicolas Fränkel
Jan 25, 2015 architecture

Entropy of code

So you were tasked to prepare your next software project. Already, its overall architecture is designed, you already put some code-related parts in place such as the build file, the packages, perhaps a sample use-case. Then after a few months, the project is finished, and the final result has largely diverged from what you imagined:inconsistent packages naming and organization, completely different low-level implementations e.g. XML dependency injection, auto-wiring and Java configuration, etc.

Nicolas Fränkel
Jun 9, 2013 architecture

There is no such thing as an absolute best architecture

I’ve been surprised this week by a colleague’s comment regarding how a piece of software had been architectured. He found it too much procedural and not enough object-oriented, despite the fact the code was performing exactly as needed. I would have expected this from a junior developer, not from a seasoned one. Hey, guys, may I kindly remind you we’re not in university anymore?

Nicolas Fränkel
Mar 17, 2013 architecture

KISS your architecture

The project I’m working on these days is not properly legacy but has seen some twists that renders it less than ideal. On this project, one of the worst point that has been an obstacle for me to develop a simple feature is layered architecture. What, shout all experienced developers, layered architecture is at the root of maintainability! and I agree wholeheartedly. So, how could layer architecture be an obstacle?

Nicolas Fränkel
Nov 1, 2010 architecture hibernate

The OpenSessionInView antipattern

With such a controversial title, I’m bound to be the target of heated comments. Although provocative, such is not my goal, however, I just want to initiate an educated debate between people that are interested into thinking about the problem. The origin of this post was a simple discussion between developers of different level of experience on Hibernate. The talk was about eager-, lazy-loading and the infamous LazyInitializationException.

Nicolas Fränkel
Jun 15, 2009 architecture design eda ego ego driven architecture

Ego Driven Architecture

Whoever is in charge of software architecture, be they senior developers, whole teams like in agile practice or architects-per-se, it is a deep trend to apply what I like to call Ego Driven Architecture (or EDA for short, not to be mistaken with Event Driven Architecture). When one has to choose an architecture, one should design it from a number of objective criteria, including: business requirements,technical constraints,ease of use,maintenance costs,etc.

Nicolas Fränkel
A Java geek © 2008-2026
v. bc04c88300c3ec997ce8470fbff5395dc9e518b1/13264050981
Latest Posts