# A Cloud Microservices Architecture for Data Integrity Verifiability Based on Blockchain
## 9 Discussion and Conclusions
### Conclusions  
Organizations tend to move their information systems to the cloud. Increasingly, one of the questions from users is about the integrity of storing data. Thus, providing data integrity is an essential activity that adds value to organizations. If this activity is provided using the appropriate technologies, it generates more value. In this paper, we described a data integrity verifiability architecture comprised of the following:  
1. An event API-gateway able to receive HTTP requests and to decide if it is addressed to an administrative user, for storing hashed data, or for consulting (audit) issues;
2. An administrative user service, able to register different types of users, authentication service able to provide tokens and authorization service, able to decide the permissiveness of the requester;
3. A storing service that saves hashed messages that later will be used as an audit process; and
4. A consulting mechanism that provides certainty about the integrity of previously stored data. We described each of the components, and to give a better idea about implementations details, we supplied a prototype description. We also developed a pair of tools to validate our proposal, consisting of a tester tool and a mobile application to be used for end-users. In addition, as shown in this research, a distributed system connected to a public blockchain induces high transaction times due to processing and, hence, a longer latency. This architecture can be replicated in different applications that do not natively have blockchain technology built-in as an extension for those systems requiring modular and scalable audit characteristics. Our solution has been built using a microservice architecture because, currently, this approach is the tendency in the software development area. \begin{table}
\begin{tabular}{c l l l l} \hline \hline
**No.** & **Characteristics** & [35] & [36] & **The Proposal Model** \\ \hline
1 & Provides data integrity & ✓ & ✓ & ✓ \\ \hline
2 & Uses blockchain technology & ✓ & ✓ & ✓ \\ \hline
3 & Focuses exclusively to supply chain systems & ✓ & & \\ \hline
4 & Focuses to generalized cloud systems & & ✓ & ✓ \\ \hline
5 & Provides auditing service & ✓ & ✓ & ✓ \\ \hline
6 & Provides traceability service & ✓ & ✓ & ✓ \\ \hline
7 & Involes different role users & ✓ & & ✓ \\ \hline
8 & Integrity: Stores events as hashed messages & ✓ & & \\ \hline
9 & Integrity: stores events as logs & & ✓ & ✓ \\ \hline
10 & Integrity: stores hashed messages in logs & & ✓ & ✓ \\ \hline
11 & Implements microservice architecture & ✓ & ✓ & ✓ \\ \hline
12 & Ensures the creation of a root user & & ✓ & ✓ \\ \hline
13 & Ensures the creation of different types of users & & & ✓ \\ \hline \hline \end{tabular}
\end{table} 
Table 8: Main characteristics of the following works [35; 36] vs. the proposal model. This is an ongoing work, we are looking for performance statistics, and it has been implemented under the Ethereum platform. Still, it could be interesting to compare other platforms, for example, Hyperledger. Conceptualization, J.C.L.-P.; data curation, J.C.L.-P. and L.A.M.-R.; formal analysis, J.C.L.-P. and L.A.M.-R.; funding acquisition, J.C.L.-P. and L.A.M.-R.; investigation, J.C.L.-P.; methodology, J.C.L.-P., L.A.M.-R. and I.A.-B. ; project administration, J.C.L.-P.; Resources, J.C.L.-P., L.A.M.-R. and I.A.-B. ; software, J.C.L.-P. and I.A.-B. ; supervision, J.C.L.-P. and L.A.M.-R.; validation, J.C.L.-P., L.A.M.-R. and I.A.-B. ; visualization, J.C.L.-P., L.A.M.-R. and I.A.-B. ; writing--original draft, J.C.L.-P.; writing--review and editing, J.C.L.-P., L.A.M.-R. and I.A.-B. All authors have read and agreed to the published version of the manuscript. This research was partly funded by COECyTJAL, issued in the FODECIJAL grant, code 8217-2019, under the fund to address state problems 2019; and it was partially funded by the Mexican National Council for Science and Technology (CONACYT) through research projects 882 and 613. Not applicable.