Flows and Variants

See execution flow through your system, end-to-end -- so you can really understand how the pieces fit together.

What's a Flow? What's a Variant?

If you want to understand a system, you need to understand what the key execution flows are, end-to-end, through that system. CodeSee's flows automatically visualize those end-to-end executions, and all their variations.

Most software systems wait around until some input or trigger kicks them into action: maybe a frontend making a request to an API, or a data stream kicking off a consumer. We call that initial point of entry to your system (the API call, the consumer) an entry point.

Often, an entry point will result in different behavior depending on the situation: sometimes it has a cache hit and returns right away; other times it misses the cache and kicks off a bunch of additional work. In CodeSee, each different variation of execution is grouped together into what we call a variant.

And a flow is made up of all the variants that have the same entry point.

Each variant is automatically detected and visualized as a flow chart (like the image at the top of this page). By default, they are sorted by traffic β€” but they can be pinned, named, and even documented.

So, if you want to understand a particular API endpoint in your system, visit the flow for that endpoint, and check out the visualizations of its variants. See which database tables are being accessed, which API calls are being made, what message queues populated, what lambdas executed, and so on -- all at a glance!

Exploring Flows

You can find flows in a few ways:

Left Sidebar "Flows" Tab

On the service map, the left sidebar has a "Flows" tab. There, you can see the flows for each service sorted by traffic.

Right Sidebar "Flows" tab

When selecting a service, the right sidebar also has a "Flows" tab. There, you can see all the flows that pass through this service.

Endpoint details tab

When selecting a service, if you select a call or endpoint from either the "In" or "Out" tabs, and if there's a Flow associated with that call or endpoint, the flow will be listed near the top.

View a flow and its variants

However you find a flow, click it to bring up the Flow View.

In this variant, you can see:

  • This entry point is sometimes accessed by the "RTCE Server", and sometimes by "Uncategorized Sources" (Uncategorized Sources is a catch-all for traffic that isn't instrumented). We call these origins for the flow.
  • This variant selects data from 6 different tables, and the names of each of those tables
  • Hover over any of these queries to see the complete query

You can click any variant along the left side to see the visual of its unique execution flow.

Customize a flow and its variants

You can also customize this flow and its variants to help capture and share your understanding with your teammates:

  • Pin a variant that you find helpful by clicking the "pin" icon on the variant card.
  • Describe a particular variant by giving it a name and a clear description
  • Describe the flow as a whole by giving the flow a custom name and description