DPSA - Backend - Business Logic
Continuing with the series for DPSA. After deciding upon the database and its schema, as part of the architectural discussions you would have a document defining the data model for various aspects of the applications. You must have reached a point where you are struggling to complete it but are not able to cause you are not sure about how the code base would grow, and what would it actually require. What you basically have is set of tables you are sure you would need them in the application. But when you deep dive, there are still some attributes which can not be defined at such a naive level. There might be some additional tables in the same position. This would be the right point to start developing the design for backend business logic.
Ideally we start by visualising the major work areas which are obvious based on the app idea. Things like workflow, dashboards, data models, query engine, sla engine, ticket flow, integration interfaces, inter-module dependencies etc are the things which go into the laundry list of items when architecting the business logic backend. Personally, I think it is always a good idea to modularise the solution and expose appropriate functions to be used internally thus having loose coupling. This helps us set short terms goals for development and also help in long term maintenance.
It’s good to have a good white board discussion in which we come up with several blocks and label them appropriately representing various modules. It becomes easier to then break these down into several sub modules and tasks required to achieve bigger target. Here, we are not holding discussions about team/individual - I want to keep this independent of that topic. With this you are now ready to start coding and simultaneously keep enhancing the data model.
As an outcome of this phase, you may have technical design at various levels of details.