Introduction to Database Design and Provider Architecture

In MemberJunction, the design of the database is a critical factor that influences the overall functionality and flexibility of the software. When designing a database, numerous choices present themselves, the most fundamental being the type of database to use. The options range from relational databases to various flavors of NoSQL databases.

📘

For MemberJunction’s initial release, the focus is on relational databases, specifically choosing to support Microsoft SQL Server.

This includes both the Microsoft SQL Server on Azure and the full SQL Server instance, which can be hosted in diverse environments, including on-premise setups.

The preference for SQL Server stems from its widespread adoption, particularly in the target market of nonprofits and associations that MemberJunction is primarily intended to benefit. This choice is not just about popularity but also about aligning with the technological preferences and existing infrastructures of these organizations.

Provider Architecture and Future Expansion

MemberJunction’s architecture is built with future expansion in mind. The provider architecture, a key component of this system, encapsulates all aspects of SQL Server specific functionality. This architecture paves the way for future support of other relational databases, such as PostgreSQL, MySQL, or Oracle. The intention is to develop providers that can interact with these databases while supporting the same interface as the SQL Server data provider. This approach would allow seamless integration and compatibility with the broader MemberJunction infrastructure.

📘

While the current focus is on relational databases, the long-term vision of MemberJunction includes the possibility of incorporating non-relational data stores.

This flexibility is part of a commitment to a multi-data provider future, where MemberJunction can adapt and integrate with various data storage solutions as they become relevant or as the community evolves.

Initial Release and SQL Server Focus

In its initial release, MemberJunction exclusively supports SQL Server. This initial limitation is a practical decision, allowing for a focused and robust first version of the software. Although it is anticipated that the expansion to other data providers may introduce challenges and necessitate updates to the framework, these are considered important steps in the software’s evolution.

The use of a single database type in the initial release is not just a matter of convenience but a strategic decision that aligns with the broader goals of MemberJunction. It serves as a foundation upon which the software can grow and adapt, ensuring that as new data providers are integrated, they do so in a way that maintains the core principles and functionality of the MemberJunction system.