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

01

Spring Boot

New services are usually Spring Boot. An older Java EE estate is extended carefully, not rewritten by default.

02

The contract

The API is explicit so a web or mobile client is not tied to a table.

03

The operators

If nobody on your side can read the service, Java is the wrong gift.

Before a Java service

  1. 01

    The estate

    Existing Java, or a new module beside something else.

  2. 02

    The domain

    The rules that need a clear module.

  3. 03

    The readers

    Teams that will maintain the API.

  4. 04

    The client

    Web, mobile, or another service. The contract is for them.

Marks Java is the right service here

  1. 01

    A service has an owner

    The long-lived backend has a team that will keep it.

  2. 02

    The contract is tested

    Callers break a test when a field they rely on changes.

  3. 03

    Chosen for the backend

    It is here because the service, the library, or the existing estate needs it.

  4. 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.

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.