Hello Sergey!

Thank you for your suggestions! And sorry for my delayed response. I've been 
spending my whole last week continuing digging in Ignite. I read your email and 
started to look into the test suites in Ignite's source code, but I find it a 
little bit hard to find anywhere to start with. In fact I am a junior 
programmer and I am not very aware of what exactly these test suites are 
testing and how I can change the code to build up my understanding for the 
specific areas of my interest in Ignite (if you are convenient, please give me 
a hint, that will help me so much!), or it's just because that my prerequisite 
knowledge is so poor. Actually I found another stupid but simple way around in 
getting to know what happens in Ignite under the hood better. I just simply 
digging into the very start of how Ignite thin clients start, that is the 
method Ignition.startClient(clientCfg). In the review of the code I encountered 
tons of classes that I'm not familiar with like all that marshallers, binary 
contexts, etc. Despite I don't know these classes very well, I think it is a 
good start to just get to know what Ignition.startClient(clientCfg) does from 
beginning to finish. Next step I think I am going to take would be taking a 
look into the test suites, further reviewing the code of the above classes and 
focusing on some specific processes of my interest in Ignite like SSL 
connection or so.


Thank you for your helpful suggestions once again!

Cup
Aug 25, 2025


---- Replied Message ----
| From | Sergey Chugunov<sergey.chugu...@gmail.com> |
| Date | 8/19/2025 15:13 |
| To | <user@ignite.apache.org> |
| Subject | Re: Suggestion request - How can I go deeper in understanding 
Ignite? |
Hello Cup,


Apache Ignite source code is hard to grasp indeed and unfortunately there is no 
detailed explanation for each and every class in its codebase.


Some components of Ignite 2.x codebase are covered in wiki pages though: take a 
look at persistent store overview and more detailed under the hood description. 
More general description of multi-tiered storage is also available. There is 
also a page dedicated to the main discovery component: Tcp Discovery under the 
hood. Look around there, there are some other useful pages too. At the same 
time some pages there are out-of-date and aren't relevant anymore. Community 
will clean them up at some point.


But in my opinion the best way to build your understanding of how Ignite works 
is to use tests. Take a look at suite classes in org.apache.ignite.testsuites 
package, they group individual tests more or less by component or feature. Set 
the project up in your favorite IDE and start debugging the code - this way 
you'll understand how the whole thing works much faster than reading tons of 
documentation or wiki pages.


There is also an Ignite 3.x project, and it's important to understand that it 
is a completely new codebase with very little shared code. One cannot easily 
transfer their knowledge from one codebase to another. Unfortunately I cannot 
point you to documentation of that project, maybe other community members will.


--
Thank you,
Sergey.


On Tue, Aug 19, 2025 at 6:13 AM ddd_ot <ddd...@163.com> wrote:

Hello!


I am a junior programmer new to Java and Ignite, and currently I am working on 
some projects where Ignite 2.16 is adopted. I have implemented some toy demos 
and hope to further explore Ignite from top to bottom.


Recently I started to get down to read the source code of Ignite 2.16 but I 
encountered a lot of problems while reading the code. When I dig into some of 
the inheritance chains in the core of Ignite I found it hard to tell the 
function and design of each class merely from the code, so I was wondering if 
there is any demonstration or illustration to the top-level structure design of 
Ignite to help me better understand the code (e.g. I found Grid a high 
frequency keyword in the code but I failed to find the meaning of the Grid or 
the design behind it). On the other hand, I searched the official doc and API 
of Ignite but I can't find the description for some specific classes. Is there 
any websites or references that could provide the detailed description of the 
implementation for every class in Ignite's source code so I can understand the 
bottom-level implementation of Ignite better? Or could you please offer me some 
advice or suggestions on reading the source code and get a deeper understanding 
of Ignite itself?


I am not a native English speaker so please forgive me for my poor English 
expression, but I truly appreciate any guidance you can provide! Thank you for 
your time and patience reading my email.


Sincerely,
Cup
August 19, 2025





Reply via email to