How a Java developer creates and maintains living documentation with AppMap

How a Java developer creates and maintains living documentation with AppMap

We spoke with Olivier von Dach, a Java-Spring-Quarkus software engineer for Lombard Odier Bank in Geneva, Switzerland. He has been using AppMap for a few years and created a unique viewer to create, use, and maintain living software documentation. Check out our chat with mOlivier in this interview.

sequence diagram image

How did you get started using AppMap?

Three years ago, in my former role, I was trying to create automatic and living documentation as a way to do better work. At the time, I was focusing on C4-based architecture documentation using Simon Brown’s Structurizr tool, but AppMap got my attention when I was looking for an alternative for documenting the inside of a deployable component.

What problem does AppMap solve for you?

AppMap is able to produce a dependency map of the components involved in the execution of an end-to-end test, from a REST endpoint to the database, while monitoring the member variables as well as the queries performed on the database. This map is navigable, based on existing classes, and has the advantage of being up-to-date because it is generated regularly as tests are run.

I’m pleased to see how this project has evolved over the last few years, and it’s now a companion for software development and onboarding, e.g. anti-patterns detection, troubleshooting, and documentation of dependencies, sequencing, and tracing.

AppMap fits elegantly into the graph of living software documentation hubs that I’m trying to put in place, which brings together Structurizr for macro-design and micro-design of systems, AppMap for micro-design of services, PlantUML for class design, Swagger for REST API documentation, Gherkin and Serenity-BDD for functional documentation, and MkDocs for technical documentation.

My plans involve setting up and using AppMap in the context of migrating existing JEE applications developed under JBoss EAP to Quarkus. The Java-Quarkus stack makes it easy to create micro-services with fast start-up and a reduced memory footprint.

sequence diagram image

Tell us about the AppMap viewer you created.

The AppMap-viewer (open source) is a way to present AppMap JSON resources outside the IDE and into a web browser. Concretely, the functionality implemented by the existing @appland/appmap NPM project is taken over and packaged as a NodeJS web application, and then, exposed as a Docker image. It is possible to use it locally on both local and remote AppMap JSON resources, or in the cloud, as it can easily be deployed as a Node application on some PAAS.

Thank you to AppMap CTO Kevin Gilpin and others in the AppMap Slack community who helped me find and implement this technical solution.

AppMap logo Get AppMap