diff --git a/docs/fcas/creation_fail.rst b/docs/fcas/creation_fail.rst new file mode 100644 index 0000000..29d02b7 --- /dev/null +++ b/docs/fcas/creation_fail.rst @@ -0,0 +1,61 @@ +.. _creation_fail: + +Why does the existing solution not work? +==== + +The existing solution does not work anymore and necessitates the need of a new +solution because of the following reasons. + +Internal reasons +---- + +The existing solution does not work anymore because of the following reasons +pertaining to the system itself. + +1. Retrieval of a filtered list of human-only usernames from FASJSON service is + a performance intensive process and time consuming process both at the + serving and the receiving end. Having the service unit to fetch the list of + all usernames not only delivers penalty to the performance of the service + unit itself but also harms the experience of those using FASJSON service at + their ends. This can lead to severely unintended consequences such as + causing an unplanned downtime at the serving end, hogging up the reources + due to the contigious nature of the request and deteriorating the quality of + service for other FASJSON users. + +2. Obtaining a moderated list of active human-only usernames from Datagrepper + is also a performance intensive and time consuming process both at the + serving and the receiving end. While running this service unit does not + deteriorate the quality of service of Datagrepper for other users, the + process is very slow as the Datagrepper service has to further interact with + the Datanommer database in order to be able to compute the request and fetch + the requested information elements. As a consequence, the service unit + runtime is very long and can be incredibly dependent on the network + performance of the client machine. + +3. Having too many entities in the system not only makes it complicated but it + also brings in the added risks of failure and cost in time and effort + required to connect these entities with each other in the form of processes. + For instance, the service unit for fetching all the usernames from FASJSON + takes more than 90-120 minutes in one run and that for fetching all the + active usernames from Datagrepper takes more than 330-360 minutes in one + run. This severely restricts the opportunities for development of new + features and quality-of-life updates as the testing workflow could end up + easily taking a lot of time and resources. + +External reasons +---- + +An new and improved solution is made necessary because of the following reasons +pertaining to the external entities. + +1. In the wake of increased requirements from the stakeholders, the scope of + the tool widened drastically to a point that the existing solution could not + be extended to address the newer needs. While the design ideas and the + processes could be followed from the existing solution, the improved + solution was required to be developed to ensure it could handle larger data + elements, compute them to find out statistics about human-only users, amount + for multiple services that publish messages on the Fedora Messaging bus and + generate contribution statistics effectively. Therefore, an initiative was + proposed to better facilitate these needs. + + diff --git a/docs/fcas/index.rst b/docs/fcas/index.rst index ff2f97c..262a4bc 100644 --- a/docs/fcas/index.rst +++ b/docs/fcas/index.rst @@ -97,5 +97,6 @@ Index creation_workflow creation_gram + creation_fail solution_workflow proposed_technologies