allegro / bigcache

Efficient cache for gigabytes of data written in Go.
http://allegro.tech/2016/03/writing-fast-cache-service-in-go.html
Apache License 2.0
7.55k stars 595 forks source link

Short term goals for HTTP server #71

Open siennathesane opened 6 years ago

siennathesane commented 6 years ago

Now that the original maintainers were graciously willing to allow me to help with the vision and execution of this project, I wanted to talk about some of the things that I am thinking of for the project. As I helped with the HTTP server, a lot of my focus is geared around it's implementation and improving upon it's implementation. It was a great 1.0 version, but it definitely has a long way to go before I consider it to be production ready.

I wanted to start a discussion around where it's current short comings are that I want to fix relatively quickly and some short term goals I think would be nice to have. I would like feedback on these items and would love to hear if you think there is a better idea we can go down.

Quick fixes that I want to wrap into what I think should go into a 1.2 release:

Would love to get some feedback on these items. I haven't started the work yet but would like to soon.

janisz commented 6 years ago

+1 SSL support. +1 to Deployment manifests? I think we can start with simple docker container and template of deployment to K8s, Marathon etc. +0.9 CLI deliverable for release. – I'm not sure if I understand correctly. Can we just add the compiled binary of a server to our release page? +0.1 Authentication for the API for adding items to the cache – I'd like to start with a proposal of what we need with it.

siennathesane commented 6 years ago

+1 to Deployment manifests? I think we can start with simple docker container and template of deployment to K8s, Marathon etc.

Sure, great place to start.

+0.9 CLI deliverable for release. – I'm not sure if I understand correctly. Can we just add the compiled binary of a server to our release page?

Yes, this is what I am referencing.

+0.1 Authentication for the API for adding items to the cache – I'd like to start with a proposal of what we need with it.

Sure, I can write one up.

agoalofalife commented 1 year ago

@janisz @mxplusb Hi there! I decided to write here and propose something. Well, How about a few extra endpoints for your server API? It would be nice add

janisz commented 1 year ago

Sounds good to me. I feel like the HTTP server is not super popular but I'm open for improvements :)

siennathesane commented 1 year ago

Well, How about a few extra endpoints for your server API?

Sounds great! Tbh, it prolly needs a large overhaul since I wrote it years ago to solve a simple problem.

agoalofalife commented 1 year ago

@mxplusb it's worth use a library for routes or some custom implementation?

siennathesane commented 1 year ago

@agoalofalife how modern do you want it? I think we're at about the limit of what I originally intended, which was basically a quick and dirty expose of the internal API.

If I was doing a proper modernization, I think I'd likely introduce protobufs, Connect (adds JSON & streaming support), and HTTP/3. I think that's a bit more than what should go in this repo, but I'm happy to do it as a side project. I have some other things I might want to do as well, like replication, etc.

Thoughts?

agoalofalife commented 1 year ago

emm... It seems too complicated for me. At the moment, I planned to add one endpoint for reset cache. So I will be able to add this one like it was before. Implementation is depend on URL.

DELETE      /api/v1/clear
DELETE      /api/v1/cache/clear  
#but may be ambiguous
DELETE      /api/v1/cache
#it looks like  REST
siennathesane commented 1 year ago

I'll defer to the current maintainers since I don't really maintain this anymore :)