Also, a realtime table has segments that are open for ingestion and segments that are committed (they are not going to be modified). Segments can be committed manually (using controller APIS) but can also be committed automatically when some conditions happen (max rows, max time, etc). Once committed, these segments in realtime tables are identical to segments in offline tables