I'm currently building a museum membership management system using .NET and a relational database. The project is inspired by solutions like MembershipAnywhere, which help museums manage digital memberships and improve the visitor experience.
The system is designed to handle member registration, digital membership cards, QR code check-ins, membership renewals, notifications, and integrations with CRM and ticketing platforms. One of my main goals is to ensure the application remains responsive and reliable as the number of members grows.
I'm trying to decide on the best architecture for long-term scalability. Would you recommend starting with a modular monolith and moving to microservices later, or designing a service-based architecture from the beginning?
I'd also appreciate recommendations on caching, database optimization, background job processing, and monitoring for a museum membership platform with a large member base.
If you've built similar museum, nonprofit, or membership management systems, I'd love to hear what worked well and what challenges you encountered.