FarmWise

The problem
FarmWise gives farmers tools to manage their enclosures and animals, book appointments with advisors and read their posts. It began as a single Spring Boot backend covering all of those areas. We then rebuilt it as separate services, so each domain could run and scale on its own.
Key decisions
- Split the backend into IAM, profile, appointment, management and post services, each with its own database.
- Added Eureka for service discovery, an API Gateway as the single entry point, and a config service that reads from a separate configuration repository.
- Forwarded the caller's JWT on calls between services, after those requests failed once security was added to each microservice.
- Ran two instances of each domain service in a production Docker Compose setup.
The result
The monolith became five domain services plus discovery, gateway and configuration services, connected to an Angular frontend. The team also added unit tests and wrote acceptance tests for the user stories across five epics.