-
Notifications
You must be signed in to change notification settings - Fork 0
Make lnurl endpoint stateless #99
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request introduces two significant and well-executed improvements. On the backend, it refactors the lnurlp endpoint to be stateless by using Redis for invoice storage instead of an in-memory channel map. This is a great architectural change that enhances scalability. On the frontend, it adds comprehensive support for light and dark themes, creating a more polished user experience. The implementation uses a centralized theme hook and correctly applies theme-aware colors and styles throughout the application.
My review includes a couple of minor suggestions for maintainability, such as using constants for a hardcoded color value in the frontend and moving function-scoped constants to the module level in the backend. Overall, this is a high-quality contribution.
* this makes the lnurl endpoint stateless. the one downside is that you're having to poll redis so it's a lot of reads but in my opinion that shouldn't be a big deal.
a7d7865 to
3f0e755
Compare
|
/gemini review |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request successfully refactors the lnurl endpoint to be stateless by replacing an in-memory DashMap with a Redis-based InvoiceStore. This is an excellent architectural improvement for scalability and robustness. The new implementation correctly uses a polling mechanism to wait for invoices. The code is well-structured, and the new tests are comprehensive. I have one suggestion to enhance logging within the polling logic for better observability.
|
/gemini summary |
Summary of ChangesThis pull request significantly improves the scalability and robustness of the LNURL endpoint by transitioning its invoice management from an ephemeral in-memory cache to a persistent Redis store. This change ensures that invoice data is reliably stored and accessible across service instances, making the endpoint truly stateless and more resilient to application restarts or failures. The implementation includes a new Redis-backed storage mechanism and an updated invoice retrieval process that polls the Redis store. Highlights
Changelog
Activity
|
No description provided.