Code Challenge - Luis Medina (Hexagonal Architecture - Spring Boot - Kafka - GraphQL) #3
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Estimados
Todo el código se encuentra en la carpeta "microservices"
Encontrar el file "Readme.md" para su lectura /microservices/Readme.md
Microservicios:
Envía peticiones asíncronas hacia el microservicio antifraud-ms(Evaluación de la transacción), mediante Apache Kafka
Recibe peticiones asíncronas con el estado final de la transacción, mediante Apache Kafka
Patrón usado:
CQRS (Command Query Responsibility Segregation): Para las consultas y actualizaciones
Estructura de paquetes
Todos los microservicios siguen el siguiente estandard, aplicando el patrón de diseño: Arquitectura Hexagonal
Diagrama de secuencia
Agilizar rapidez en el registro de transacciones
Se utiliza Spring Cache para el guardado temporal de las transacciones. (utilizado en el proceso de registros)
Ejecución de peticiones GraphQL
1 Creación transaction para APPROVED
![register_approved](https://private-user-images.githubusercontent.com/38509141/336952776-c8ad8d6b-3c18-4453-94c4-168ce368d856.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzQ1MDAwMDYsIm5iZiI6MTczNDQ5OTcwNiwicGF0aCI6Ii8zODUwOTE0MS8zMzY5NTI3NzYtYzhhZDhkNmItM2MxOC00NDUzLTk0YzQtMTY4Y2UzNjhkODU2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDEyMTglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQxMjE4VDA1MjgyNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWY3N2RlZjg2MzhkMzY5MWZiZDNmNzk1NmVhYTlmMGE4YmE0YTEyZmYzMGY4ZTUyNDFhOWE0NTkwODc4NDk4NDkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.aI_lLxy9_-ix0fX4kcAAdPxRwQLyuhpsZGsvvaB-wts)
Revisión en BD con el registro APPROVED
![bd-appoved](https://private-user-images.githubusercontent.com/38509141/336952856-c5d274fc-1468-4d3f-b527-9d1bf008bce3.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzQ1MDAwMDYsIm5iZiI6MTczNDQ5OTcwNiwicGF0aCI6Ii8zODUwOTE0MS8zMzY5NTI4NTYtYzVkMjc0ZmMtMTQ2OC00ZDNmLWI1MjctOWQxYmYwMDhiY2UzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDEyMTglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQxMjE4VDA1MjgyNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWIxMTQ4ZWMzOWM3ZWQ1NDM2NzRhMGVhODJmNGQ0YjUwM2ZhZTc5MTM5Y2EzNmNmODcxMjBlZDA3MGJjZDk5OGUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.awSw_81w2nssrN4-ELtV8hG7lIer7umC6iRnzGkFqVs)
2 Creación transaction con un valor a REJECTED
![register_rejected](https://private-user-images.githubusercontent.com/38509141/336952896-5e6759a3-2da7-408d-a6ef-aa23155470fe.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzQ1MDAwMDYsIm5iZiI6MTczNDQ5OTcwNiwicGF0aCI6Ii8zODUwOTE0MS8zMzY5NTI4OTYtNWU2NzU5YTMtMmRhNy00MDhkLWE2ZWYtYWEyMzE1NTQ3MGZlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDEyMTglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQxMjE4VDA1MjgyNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTg2ZjU0ZjM0YThhNmNjNTE2OTVkNTUzNGY4ZGJmZjNiZjZjNzJhM2FjMTAyNmMyZmIxOGVhOThiN2Y2ZjNhM2QmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.BKFLscs76ggfj54UWvGJSe6zT8GOULNxRc-vo4f5bjw)
Revisión en BD con el registro REJECTED
![bd_rejected](https://private-user-images.githubusercontent.com/38509141/336952949-5beaa2e3-6621-45ec-8191-13edfff2566e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzQ1MDAwMDYsIm5iZiI6MTczNDQ5OTcwNiwicGF0aCI6Ii8zODUwOTE0MS8zMzY5NTI5NDktNWJlYWEyZTMtNjYyMS00NWVjLTgxOTEtMTNlZGZmZjI1NjZlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDEyMTglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQxMjE4VDA1MjgyNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTZmM2ZlOWNiYjc4OGFiNmU1M2IyOGZlMmIyMjY0OTE3NGVmOGVhODVjYWRjZjFmM2RmM2RiOGM0ZTEwZWRhNzkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.tmLvEsEU-3-he06Aplg2KmUJ7-vZG3oMNRgvMR7CrWo)
3 Consulta de transaction según code:
![5 consulta-appoved](https://private-user-images.githubusercontent.com/38509141/335899291-61381937-9cfd-44e0-8614-55129ed35753.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzQ1MDAwMDYsIm5iZiI6MTczNDQ5OTcwNiwicGF0aCI6Ii8zODUwOTE0MS8zMzU4OTkyOTEtNjEzODE5MzctOWNmZC00NGUwLTg2MTQtNTUxMjllZDM1NzUzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDEyMTglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQxMjE4VDA1MjgyNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTRiYWI2MTI3MTkzYjllZjAxMzVhMzBkYTlmZTIwN2NiYTM4ZTgzOWM5NzM5OWJiODVmMzE2MzViNWUyM2EwNjMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.pCE46jP6dFhVVF_9jiJnLnJ9qEtEKqWaPn5xK4IX6x0)
4 Consulta de transaction inexistente
![6 consulta-not-found](https://private-user-images.githubusercontent.com/38509141/335899296-67050343-380d-4898-9124-ab094e12181c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzQ1MDAwMDYsIm5iZiI6MTczNDQ5OTcwNiwicGF0aCI6Ii8zODUwOTE0MS8zMzU4OTkyOTYtNjcwNTAzNDMtMzgwZC00ODk4LTkxMjQtYWIwOTRlMTIxODFjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDEyMTglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQxMjE4VDA1MjgyNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTZlN2QzZjkzNWU2NzM0OGM4Mzg2MDkzZDJiMDhmMjE2ZmZhMGMwODBiMWIzZGJlMzc0ZDE0YjM3MTBkYmU0ZjUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.RKwElVHmV41ypkxwtkS8SepOQgMVTAUkEKNTeaN-b50)
5 Consulta de todas las transacciones
![7 consulta getAllTransactions](https://private-user-images.githubusercontent.com/38509141/335899303-c593f156-75a2-42a6-8814-f7229f94be4e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzQ1MDAwMDYsIm5iZiI6MTczNDQ5OTcwNiwicGF0aCI6Ii8zODUwOTE0MS8zMzU4OTkzMDMtYzU5M2YxNTYtNzVhMi00MmE2LTg4MTQtZjcyMjlmOTRiZTRlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDEyMTglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQxMjE4VDA1MjgyNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTA3YjMyNmY3NzZiNGE0YTllNTFlNTU5MGU3OWU4ZjRhNGYwZWFmNzc0ZWNlODljNmIxZWY0OWRiYmQ2ZGJlYzQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.V82XKIFfJD2xRGlZ0dzUT-emwHkLTWlQ3DbBQoHLg1I)