Software Architecture Document - mstane/software-architecture-lab GitHub Wiki
MyBooks
1. Architectural Goals and Constraints
This section describes the software requirements and objectives that have some significant impact on the architecture.
1.1 Technical Platform
MyBooks Service a web application requires Java 8, Maven 3.x dependency manager and build tool. It will be deployed onto Jakarta Tomcat application server.
1.2 Transaction
Transaction management support of the Spring Framework will be used.
1.3 Security
The system shall be secured, so that a reader can make changes to the system and work with data. The application shall implement authentication: using a user name and a password.
1.4 Persistence
Data persistence will be addressed using a PostgreSQL relational database.
1.5 Reliability/Availability
There is no need to support session replication and load balancing. To achieve high availability we need two-node active/standby cluster, changing the bond virtual IP addresses and all clients to access on IP level.
Maestro Cluster control tool to manage clustering and Keepalived to configure high availability. The web server and database server reside on all machines and share the same VIP. Targeted availability is 24/7: 24 hours a day, 7 days a week
1.6 Performance
Any user operation should have a maximum response time of 1 second