Architecture is the core of every software system. Once designed it is quite complicated to introduce changes. Therefore, when there are preset requirements, architectural approach is the best.
ENBISYS experts advise on optimal architecture for every product.
There are 3 main architecture approaches nowadays:
- Event-driven architecture
SOA is an approach when system is built as a set of services. Every service covers particular part of functionality and might have several different APIs for different users. For example you might have billing service and it could provide RestFul JSON API for mobile clients (iOS/Android) and SOAP (Web Services) for 3rd
Microservices approach takes SOA to the next level. In SOA all services belong to single information system which shares data (common database). In Microservices approach all services are independent systems. Every microservice has its own database and its own backend. Usually in this approach there is additional orchestration layer between microservices and frontend.
The benefits of Java Microservices are:
- High system availability / Robust - if malfunction happens only small part of functionality will be temporarily unavailable
- Highly effective scaling - possible to scale each service considering its usage/load
- Hot swap in production - upgrade any parts of Java system in production with no downtime
- Each microservice could be owned by dedicated team with its own release calendar
- Each microservice could have own technology framework (can mix Java, .Net, Ruby ...)
Approaching the process of migration from legacy technologies, like PL/SQL, ENBISYS takes functional blocks of the system one by one and rewrites each in Java. Then this new Java modified piece is integrated into existing system seamlessly.
This allows end-users to continue using old system while the Client is introducing technological Java updates to running system.