This page and its child pages is an attempt to describe some aspects of how Wicket internals work. It's written for Wicket 1.3 though most things should apply to other versions as well. You can read pages in the following order:
When reading anything of the above it may be also a good idea to look at java docs for described classes and browse Wicket sources. After all these pages are only representation of the real thing, which is the Wicket source code.