dwettlaufer
Joined 6 years ago
Joined 6 years ago
1. REST could be a viable option and has been used many times when splitting up a monolith but we didn't believe it could give us the performance we would need due to opening and closing connections
2. With REST we would essentially have to define our own schema definition language to describe the transport of messages between service and persistence which would also add the overhead of serializing and deserializing json payloads
3. CQL is a proven transport mechanism but requires the use of a driver which means whatever language used to implement the service must also have a workable driver (flexibility is a driving design principle for v2)
4. The session based nature of drivers would cause issues in a multi-user or multi-tenant environment
5. Although CQL fits most of our use cases it doesn't quite cover everything
So, yes performance was a factor in choosing gRPC but there was also the flexibility it gave us while being able to reuse CQL thus avoiding reinventing the wheel.
The reason for Cassandra is the normal reasons someone would turn to Cassandra, fault tolerance, scalability, high write throughput. It's a powerful database we really like but can get a bad rap at times so with Stargate we wanted to make it easier for developers to get their data in and out with their preferred interface. Although we have left it open to extension so if Cassandra isn't your cup of tea we welcome PRs to add new persistence backends.
Example docker-compose and helm charts are definitely in the works! Stay tuned and we should have those out soon.
Oh that looks cool! I'm digging the UI. Thanks for sharing, I'll have to try that out later and maybe we can learn some things from each other.
Up until now we've primarily used our [Discord server](https://discord.gg/33mKDHHFUE) and Github issues for feedback. Starting with v2 we plan to start using Github Discussions as another avenue. Although we like Discord for free form discussion and quick questions it's not great for retention or searching for past solutions. Issues felt a bit constrained and tend to be directly tied to pull requests. Our hope is that with Discussions we'll be able to have more long form discussions that can be retained and made us of by others in the community. Also with Discussions we would like to start making use of an RFC process where anyone can propose designs, discuss, and then proceed with implementation.