Teknik
Välkommen till vår teknikblogg! Håll dig uppdaterad, följ oss på LinkedIn
Välkommen till vår teknikblogg! Håll dig uppdaterad, följ oss på LinkedIn
With Spring Boot 3.2 and Spring Framework 6.1, we get support for Coordinated Restore at Checkpoint (CRaC), a mechanism that enables Java applications to start up faster. With Spring Boot, we can use CRaC in a simplified way, known as Automatic Checkpoint/Restore at startup. Even though not as powerful as the standard way of using CRaC, this blog post will show an example where the Spring Boot applications startup time is decreased by 90%. The sample applications are based on chapter 6 in my book on building microservices with Spring Boot.
With Spring Boot 3.2 and Spring Framework 6.1, we get support for some really exciting new features like Java 21, including Virtual threads, and shorter startup times using Coordinated Restore at Checkpoint (CRaC). In this blog post, I will use the source code in the 3rd edition of my book on building microservices with Spring Boot and describe how to upgrade it to Spring Boot 3.2 and Java 21.
Jag har varit på Cloud Native & Container Day. Här kommer en kort reflektion och takeaways från årets evenemang och lite om vad som är hett och vad som kommer.
It was the best of
java.time.Date
, it was the worst ofjava.utl.Date
.
- not Charles Dickens
Använder du forfarande java.util.Date
?
Gör inte det.
Varför? Det finns bättre sätt att hantera både kalenderdatum och tid i java.time
paketet. Ta 10 minuter för att förstå vad klasserna i java.time
kan göra för dig.
För 18:e året arrangerades utvecklarkonferensen Jfokus i Stockholm. Jag var som vanligt på plats som scenvärdsanvarig men hade tid att vara med på Universitetsdagen på måndagen och se många bra tal under två fantastiska dagar. Här kommer några reflektioner och en liten topplista över de presentationer som jag rekommenderar att man tittar på.
För att säkra att rätt tillgänglighetskrav ställs på olika funktioner inom ett system behöver vi titta på krav utifrån de verksamhetsprocesser som nyttjar funktionerna.
Taking a quick look at building a backend-driven web GUI using htmx and Go templ.
Det finns många godbitar i Java 21 men den största av dom alla pratar ingen om.
Hösten 2003 kom Eric Evans bok om Domain-Driven Design ut för första gången. Den ansågs som banbrytande och var en ögonöppnare för många inom mjukvaruutveckling. Den jämfördes med Martin Fowlers böcker om designmönster men det fanns en avgörande skillnad.
Evans införde konceptet “domändriven utveckling”, där huvudsyftet var att skapa lösningar nära kopplade till den verksamhetsdomän som systemet skulle betjäna och samtidigt bryta ner dess komplexitet.
I denna text utforskar jag behovsdomäner och hur de kan adresseras genom tre olika aspekter: operativ, taktisk och strategisk. Jag presenterar lite erfarenheter jag samlat på mig genom åren och som jag önskade att någon erfaren arkitekt hade förklarat för mig tidigare.
Taking a quick look at Erlang-style actor architecture using Go with Ergo Framework.
För en tid sedan höll Confluent en dag med temat “Data in Motion”. I denna utforskande text sammafattar jag mina intryck av dagen och ger min syn på den ständigt växande världen av datahantering inom IT-branschen.
Från traditionella metoder för att samla och lagra data till moderna arkitekturmönster som Data Mesh och det dynamiska landskapet av dataströmmar. Jag utforskar konceptet av data som en produkt, hanteringen av komplexiteten i dagens system, och de utmaningar som uppstår när man hanterar data i rörelse.
Och jag reflekterar över den övergripande frågan - är det värt att övergå till strömmad data? Det beror på…
Spring Boot 3.1 was released in May 2023 during the wrap-up of writing the 3rd ed of my book, so there was no time to upgrade the code before releasing the book. Instead, in this blog post, I will describe how to upgrade the source code examples in the book from Spring Boot 3.0 to Spring Boot 3.1, use some of the new features like Testcontainers at development time, and also cover some new and resolved bugs.
Samma vecka som några av mina kollegor besökte GSAS i Barcelona så hade jag möjligheten och nöjet att besöka World Summit AI 2023 i Amsterdam, där vädret inte låter sig jämföras med Katalonien men jag tror att konferensinnehållet var minst lika bra! Därför tänkte jag, utifrån en handfull anteckningar, mitt bristfälliga minne och på mitt eget fullkomligt otillräckliga sätt, försöka dela med mig av några höjdpunkter, teman och reflektioner från konferensen.
I veckan flydde vi hösten för ett par dagars konferens i soliga Barcelona och Global Software Architecture Summit 2023. Där fick vi två dagar fulla av presentationer i en lokal som påminde lite om biosalongerna där vi brukar ha vår egen Cadec, men med lite mindre bekväma stolar.
With Swift 5.9 and Xcode 15, introduced in this year’s WWDC, there is a new take on how observation is implemented and integrated with SwiftUI. The new macro capability in Swift has enabled the replacement of the protocol ObservableObject
and property wrappers like @Published
, @ObservedObject
and @StateObject
with the new @Observable
macro. The new Observation framework brings several advantages aiming for simpler usage and improved performance by updating only the views directly affected by changes in the data model.
In part 5, we implemented the Shared Database with Discriminator Column pattern using Hibernate filters. Since then, Hibernate has implemented native support for Discriminator-based multitenancy. Hence in this final part, we’ll implement the Shared Database with Discriminator Column pattern using Hibernate 6 and Spring Boot 3.
This post is part two of dipping our toe into the ocean of Ansible.
In part 1 of this series, we reviewed the basics of Ansible, how to build and execute tasks, and how to create our first playbook to contain it all. If you missed it, you can find part one here
In the first part, we implemented access control for a sample API using Kong plugins for OIDC and OAuth 2.0, and in the second part, we implemented access control using Mutual TLS. In this short post, we will combine OAuth 2.0 Client Credentials with Mutual TLS, which is a frequently used pattern.
In the last part, we implemented access control to a sample API using Kong plugins for OIDC and OAuth 2.0. In this post, we will instead use Mutual TLS, where an x509 client certificate is used to authenticate the client. We will combine that with an Access Control List, where information from the client certificate is used to grant access.
Since https now being the default protocol in modern browsers rather than plain http, it is often necessary to be able to use https in local development and test environments. While many tools bundles a mechanism for automatically create self-signed server certificates for https usage, it is often necessary to be able to create a full Public Key Infrastructure for the development environment, with a Certificate Authority (CA) issuing both server certificates (used for backend servers) and client certificates (used for Mutual TLS). In this short blog post, we’ll summarize the steps required to set up a development PKI using OpenSSL.