Story points are unique to the team that is doing the work. Basically, a 21 point story for me could be a 3 point story for you.
In of themselves, the points are not important. Just size the stories to some amount of points that is reasonable and then do a sprint. The objective is to get a sense of how much work can be done in a sprint, to help create forecasts of when work will be completed.
I went through a phase where I dove deep on the internals of the CLR runtime for C# and there’s a great book on the subject. Might need to find an equivalent for the JVM.
I know the garbage collection part of the runtime has had lots and lots and lots of research and papers and study