Java
Java development for long-lived business systems
We use Java, usually with Spring Boot, for APIs and domain-heavy systems that several teams will maintain. It is a strong default when the estate is already Java, or when the process is complicated enough that a clear module structure matters more than a fast prototype.
- Spring Boot APIs
- Domain workflow
- Integrations
- Operable services

What we build
Service APIs, workflow engines around approvals and orders, and integrations into finance and identity. Spring Boot is the usual application framework. We keep the domain model readable and the API contract explicit so a mobile or web client is not coupled to a database table.
When we would choose something else
A small content tool or a data-science heavy feature is often a poor reason to start a new Java estate. Python is a better fit beside models and document pipelines. A team that only knows Node.js should not be handed a Java platform they cannot operate. We say that before the repository is created.
Java when the system must stay clear
Choose Java when
- The estate is already Java
- The domain has rules that need a clear module
- Several teams will maintain the API
Choose something else when
- The work is a short content tool
- The team only operates Node.js
- The centre of the work is a document model
What we settle before a Java repo
Spring Boot
New services are usually Spring Boot. An older Java EE estate is extended carefully, not rewritten by default.
The contract
The API is explicit so a web or mobile client is not tied to a table.
The operators
If nobody on your side can read the service, Java is the wrong gift.
Before a Java service
- 01
The estate
Existing Java, or a new module beside something else.
- 02
The domain
The rules that need a clear module.
- 03
The readers
Teams that will maintain the API.
- 04
The client
Web, mobile, or another service. The contract is for them.
Marks Java is the right service here
- 01
A service has an owner
The long-lived backend has a team that will keep it.
- 02
The contract is tested
Callers break a test when a field they rely on changes.
- 03
Chosen for the backend
It is here because the service, the library, or the existing estate needs it.
- 04
The team can read it
Handover includes people who will change the code, not only run it.
What we build
Spring Boot APIs
Versioned HTTP APIs with authorization tests and a documented error model.
Domain workflow
States, rules, and audit for processes that outlive a single screen.
Integrations
Queues, files, and partner APIs isolated so a failure does not take the core transaction with it.
Operable services
Health, metrics, and a pipeline that can roll a release back.
Related reading
Questions we hear
Do you use Spring Boot specifically?
Yes, for most new Java services. Older Java EE estates are approached as maintenance and careful extension, not as a rewrite by default.
Can the front end be Angular or React?
Yes. Java is the server. The front-end page describes that choice separately.
Is Java slower to deliver?
A first endpoint is not slower in any way that matters. What takes time is the domain. Choosing Java does not remove the need to cut the first release.



