Skip to content

Meeting Minutes ‐ Backend

Nirav Patel edited this page Apr 12, 2026 · 23 revisions

List of Backend Meeting Minutes

Iteration 2 Task Breakdown and Tech Stack Finalization

Monday, September 22nd

Attendance:

  • Giuliano Verdone
  • Nirav Patel
  • Michael Mezzacappa

Absent:

  • Brian Tkatch

Note taker: Nirav Patel

Notes: The backend sub-team met to align on task assignments and finalize technical decisions for Sprint 1/2 development.

  • Task Assignments:
    • The subteam reviewed the user stories approved earlier by the stakeholder during the Product Backlog Walkthrough meeting, created subtasks for each user story that applied to the back-end to fulfill.
    • The subteam reviewed the concept of "story ownership" and determined that user stories 2 and 3 can be owned respectively by Giuliano and Brian.
    • Given that Nirav had setup the CI, and that Michael will be setting up a logging tool which will come into use in later sprints, they have decided to split user story 1.
    • Regarding the user story 6's sole subtask, which consists of exposing an endpoint to modify the simulation speed, Nirav will be handling that as he has already been assigned other endpoint-related tasks.
    • The team has decided to make use of Grafana, a logging tool, FastAPI for the API interface, and SQLAlchemy to setup a database through which sim and front can use for entity data (resources, tasks, stations).

Action Items:

  • The subteam needs to determine the communication that will be taking place between the sim and back subsystems, whether through a WebSocket or simply through direct object-calling/library-importing.
  • Document this subteam meeting into the Meeting Minutes GitHub Wiki page.
  • Finalize setting up the CI and merging its associated PR to begin development.

Iteration 2 Sync-up Meeting 1

Thursday, October 2, 2025

Attendance:

  • Giuliano Verdone
  • Nirav Patel
  • Michael Mezzacappa
  • Brian Tkatch

Absent: none

Note taker: Giuliano Verdone

Notes: The backend sub-team met to sync up with progress on current task assignments. New tasks were assigned, which are related to high-level design artifacts that complement the current API design.

  • Update on existing Task Assignments:
    • Nirav has handled back-end subtasks for US-1 in PR #85. Thanks to this, technical sub-tasks for Brian, Michael, and Giuliano have been unblocked
    • Michael has been assigned the technical sub-tasks in US-6
    • Michael has continued work on setting up logging, namely the Grafana library
  • New Task Assignments:
    • New tasks have been discussed and promptly assigned which are related to high-level design artifacts that complement the current API design.

Action Items:

Iteration 2 Sync-up Meeting 2

Thursday, October 9, 2025

Attendance:

  • Giuliano Verdone
  • Nirav Patel
  • Michael Mezzacappa
  • Brian Tkatch

Absent: none

Note taker: Giuliano Verdone

Notes: The backend sub-team met to sync up with progress on remaining task assignments for Iteration 2.

  • Update on existing Task Assignments:
    • Brian recapped to the sub-team the reasons why #119, #120, #124, and #127 were closed as abandoned today (kindly refer to the issues themselves as it has also been documented there)
    • Brian uploaded content for API design standards under a new Wiki Page as well as under the Security Wiki Page
    • Michael has continued work on setting up logging to resolve issue #104
  • Other notes:
    • Building off of today's team-wide meeting, Nirav has offered to look into handling the necessary WebSocket implementation between frontend and backend this weekend.
    • To begin planning for Iteration 3 and save time during Monday's team-wide Sprint Planning meeting, the backend sub-team established that user authentication/authorization sub-tasks like "reset password" are considered low-priority in contrast to other upcoming tasks like refactoring the database
    • Besides WebSocket, REST polling was found to be necessary as a fallback and should be implemented in full during upcoming iterations

Action Items:

Iteration 3 Sync-up Meeting 1

Thursday, October 16, 2025

Attendance:

  • Giuliano Verdone
  • Nirav Patel
  • Michael Mezzacappa
  • Brian Tkatch

Absent: none

Note taker: Giuliano Verdone

Notes:

All members approved of the following agenda items:

  1. For each user story in user story 3, revise the proposed tasks and their estimations
    • if any tasks were missing in the Product Backlog, add them
  2. Distribute the technical tasks equally across team members
  3. Regarding task 7.3, discuss how quickly does a user disablement need to take effect

For agenda item 1:

  • Team members were mostly in line with the technical tasks
  • One observation was made that certain tasks (ex. setting up a cloud-based solution to host our current logging for VeloSim in prod) don't yet belong to a specific User Story
    • These missing tasks will be added to the product backlog
  • Another set of observations included tasks that should be moved to another story, or tasks that should be removed entirely
    • Changes were made accordingly
  • The team agreed that certain tasks will require collaboration/discussion with other sub-teams
    • For example, the proposed JSON template for a scenario will by finalized with our simulation sub-team as their model is considered to be the source of truth
    • Another example was confirming with the frontend sub-team that we're aligned on specifics for stories

For agenda item 2:

  • Team members distributed tasks equally based on Fibonacci points, estimated ideal times, and availability (especially with midterms just around the corner)
    • Slowly transitioning toward story ownership (one story per member) and although not entirely there yet, expected as stories become more refined
  • Currently, the task distribution is as follows (where number format below is: [Story#].[Task#]):
    • Brian: 7.1, 7.2, 7.3, 7.4
    • Giuliano: 7.5, 7.6, 7.7, 7.8, 11.1, 11.2, 11.3
    • Michael: 7.9, 9.1, 9.2, 9.3, 9.4
    • Nirav: 9.5, 9.6, 10.1, 10.2, 10.3, 10.4
  • Note that tasks for US-12 (Export Scenario) and US-13 (Import Scenario) do exist, but the team hasn't assigned anyone to them as it appears that they don't pertain to Iteration 3

For agenda item 3:

  • While working on his assigned tasks, Brian raised the question: "How quickly should user disablement take effect?"
  • Two options have been considered when carrying out the design:
    • Immediate enforcement such that every CRUD operation checks user status in the database
    • "Delayed" enforcement where disabling a user's account takes effect after the current OAuth token expires (configured for 30 minutes)
  • The team discussed their concerns:
    • With delayed enforcement, a disabled user could still access resources or perform limited actions until the token expires
    • The trade-off is that immediate checks increase system complexity and database load, while delayed checks risk short-term unauthorized access
  • Finally, it was decided that "Delayed" enforcement will be implemented for the following reasons:
    • We chose to follow best practice for OAuth (stateless) which allows existing tokens to expire naturally rather than checking user status on every single request
    • Immediate enforcement adds complexity and is unnecessary for most real-world scenarios
    • This hopes to align with real-world scenarios where account disablement is uncommon and usually tied to a user leaving the organization

Additionally:

Action Items:

  • Team members will begin/continue work on Iteration 3 sub-tasks (and touch base towards the end of this weekend to report on progress)
  • Nirav will write out any missing tasks in the backlog after this meeting
  • At minimum, two team members will review PR #175 as soon as possible

Iteration 4 Sync-up Meeting 1

Thursday, November 6, 2025

Attendance:

  • Giuliano Verdone
  • Nirav Patel
  • Michael Mezzacappa
  • Brian Tkatch

Absent: none

Note taker: Giuliano Verdone

Notes:

  • As mentioned during today's stand-up, Brian will be finalizing AWS deployment this weekend with Thomas and Nirav
  • As mentioned during stand-up, Michael and Nirav are working on scenario management to be completed by end of day, which encompasses the following tasks: #204, #205,
  • As mentioned during stand-up, Giuliano is working on finalizing the payload being emitted via WebSocket and scenario loading, which encompasses the following tasks: #198, #212, #213
  • A discussion was held to finalize logging in the backend portion of the system; Nirav mentioned that he had wrapped logging from Michael's work
  • Brian offered to take initiative and work on the Performance wiki page and create a Logging page as well to document our logging process.
    • He will go through key parts of codebase to see what should be logged and examine tradeoffs (an example would be database transactions, which are not really valuable to log at this point in the project)

Action Items:

  • (Due Nov 9) Team members will continue work on remaining Iteration 4 sub-tasks mentioned above
  • (Due Nov 9) Brian will add a Logging page to the Wiki in order to document our team's logging process, as well as what will be logged
  • (Due Nov 9) Brian will add to the current Performance Wiki Page
  • (Due Nov 9) Giuliano will add a diagram to showcase the backend architecture in the Overall Architecture and Class Diagrams page

Iteration 5 Sync-up Meeting 1

Thursday, November 13, 2025

Attendance:

  • Giuliano Verdone
  • Michael Mezzacappa
  • Brian Tkatch
  • David Carciente

Absent:

  • Nirav Patel

Note taker: Brian Thatch

Notes:

  • Unification - need to discuss with sim team prior to starting

    • back-persisted data is data that needs to be changed outside of Sim-land, for example, tasks and dispatches of those tasks (so LispLogics can dispatch tasks via API)
    • either way for reading, Sim needs to reference back-persisted data primarily by identifier and call back to get updated state when it is necessary
    • for writes, at this time 2 approaches have been identified:
      • sim instantiates the object with a high-entropy identifier (UUID) and gives back a write callback on instantiation and whenever the state changes
      • sim uses a callback, back instantiates and hands back the object with a traditional postgres autoincrement identifier
      • is one or the other easier for testing?
      • need to avoid various race conditions here
  • WebSocket clean-up - Giuliano to review code, Brian to provide retroactive PR review

  • Grafana and Metrics - Brian to provide refs to Michael on Metrics, Michael to write guide on how to log metrics

  • Server set-up - Brian to pull team's public SSH keys from Github and set up users, harden SSH, figure out deployment

    • potential issues with not having a public IP/exposed HTTP/S port
      • Tailscale might be a solution, not sure if Tailscale funnel supports websockets
        • see fallback point
      • Cloudflare or Brian homelab VPN could also be solutions
  • Front-end WS fallback

    • Brian thinks simple HTTP poll is the most resilient and best fallback mechanism to implement
      • Not sure if Server-sent Events (SSE) is officially on a deprecation path, but it is the uni-directional path that preceded the bi-directional WebSockets
      • would not invest engineering effort into a technology especially if it might suffer in the same network environments that WebSockets suffers in
    • Mostly a Front story, but we will need to provide whatever endpoint they need
      • generally, a "currentFrame" endpoint

Action Items:

  • Team members will begin work on Iteration 5 sub-tasks mentioned above
  • Team members will review these minutes and bring comments/suggestions for the simulation team during Monday's meeting (Nov 17)

Iteration 5 Sync-up Meeting 2

Thursday, November 20, 2025

Attendance:

  • Giuliano Verdone
  • Michael Mezzacappa
  • Brian Tkatch
  • Nirav Patel

Absent:

  • none

Note taker: Giuliano Verdone

Notes:

  • Progress on the team's tasks was already given during today's stand-up, as well as mentioning which PRs will require review
  • Follow-up on Unification - it was established that key frames will be persisted and a ticket will be opened for this
    • Michael will begin looking into it during this iteration
      • After some preliminary work+research this iteration, the unification effort can begin in the next iteration
    • It's uncertain whether the sim subteam will have everything they need to start a previously in-progress simulation from a stored keyframe
      • a message will be sent in the sim team's subchannel for clarifications
  • This weekend, Michael will write the guide on how to log metrics, as well as work on logging sim startup time as described here

Action Items:

  • Team members will continue work on Iteration 5 sub-tasks mentioned above
  • Send a message to simulation subteam for clarifications (and possibly arrange another meeting before continuing work on persisting simulation data)

Iteration 6 Sync-up Meeting 1

Thursday, November 27, 2025

Attendance:

  • Giuliano Verdone
  • Brian Tkatch
  • Nirav Patel

Absent:

  • Michael Mezzacappa

Note taker: Giuliano Verdone

Notes:

  • Progress on the team's tasks was already given during today's stand-up: Nirav made the team's release notes for I5 and Brian finalized the PR related to ansible but is still waiting on clarifications from the CSSE
  • Giuliano asked for clarification on opening GitHub issues tied to changes requested in this PR: Brian and Nirav agreed that since this is related to functional impairments, it can be opened as a 'bug' and not an enhancement
  • When Michael completes the guide on how to log metrics and opens a PR for logging sim startup time as described here, the team can provide reviews (namely for Grafana setup on deployment)
  • Brian will focus on the potential deployment for CSSE during this weekend
  • Given the fact that there's currently commitments to projects, assignments, and final exams for other courses, all backend sub-team members will reconvene Monday to finalize task breakdown

Action Items:

  • Team members will continue work on Iteration 6 sub-tasks mentioned above
  • Gather more details from simulation subteam about (1) backend persisting outputted keyframes and (2) making sure that a sim can resume/start from a keyframe
  • Giuliano will open GitHub issues for the changes requested in this PR and begin work on them
  • Brian will revise the PR related to ansible if necessary, once the CSSE responds to the team's inquiries

Iteration 6 Sync-up Meeting 2

Thursday, December 11, 2025

Attendance:

  • Giuliano Verdone
  • Brian Tkatch
  • Nirav Patel
  • Michael Mezzacappa
  • Thomas Mahut

Absent:

  • none

Note taker: Giuliano Verdone

Notes:

  • Progress on the team's tasks was already given during today's stand-up, but as a recap:
    • Brian will be trying out deployment with CSSE again, given the latest information on machine assignment
    • This weekend Nirav will research using UV and/or Tox in our project (the tools mentioned under the CI feedback that we received in our Release 1 grading)
    • Michael will work on Prometheus onboarding
    • Giuliano will work on a PR to address this bug about missing thread safety for certain WebSocket utilities
  • The backend sub-team reviewed the Release 1 grading feedback and discussed which items should be addressed as backend bugs or enhancements
  • We have identified four issues that require attention to properly meet the grading criteria and improve the backend implementation:
  • Michael uploaded a guide for Metrics with design choices on why Prometheus will be used, alongside OpenTelemetry
    • Michael and/or Nirav will add a code example for using the current central logging system

Action Items:

  • Team members will continue work on Iteration 6 sub-tasks mentioned above
  • Giuliano will open GitHub issues for the discussed bugs and enhancements
  • Giuliano will meet with David sometime tomorrow (December 12) to discuss what information needs to exist for routes, to be persisted in key frames. This will be added to the existing notes for work to be done for unification on back/sim
  • Brian will work on trying out deployment given the latest information on machine assignment

Iteration 8 Sync-up Meeting 1

Friday, January 16, 2026

Attendance:

  • Giuliano Verdone
  • Brian Tkatch

Absent:

  • Nirav Patel
  • Michael Mezzacappa

Note taker: Giuliano Verdone

Notes:

  • Discussed backend-related tasks for US-23: Simulator Persistence and Replayability
  • AT 23.1 "Reload the page”
    • Basically done from Chris’s previous PRs
  • AT 23.2 “Play/pause button”
  • AT 23.3 "Rewind” (expected to be the most complex and involve the most design)
    • main design decisions to satisfy AT 23.3 include: how the fe and be will exchange data
      • ex. when the users seeks forward/backward, are we going to make the websocket bidirectional? Are we going to have an API call (just as we do for playback speed) and then frames are emitted with a lower sequence number to match the speed? Are we going to keep the frame generation going forwards even while the user is not ‘looking’ at the current frame anymore?
  • AT 23.4 "Replay finished simulator” (expected to be the smallest sized issue)
    • Probably a question of API design. Brian expects the existing WS/FE player rails will be reused heavily, but some refactoring required and some new API endpoints
  • AT 23.5 "Branching”
    • Probably a question of API / db Schema development
    • will involve DB work and API endpoints but nothing FE (since we will leave it to them to add a new tab to implement the active/complete completed simulations list)

Action Items:

Iteration 11 Sync-up Meeting 1

Tuesday, February 24, 2026

Attendance:

  • Giuliano Verdone
  • Brian Tkatch
  • Nirav Patel
  • Michael Mezzacappa

Absent: none

Note taker: Giuliano Verdone

Notes:

  • The backend sub-team reviewed the Release 2 grading feedback and discussed which items should be addressed as backend bugs or enhancements
  • The team discussed research on GraphHopper and Valhalla. A decision needs to be made with David on which of the routing providers will be selected going forward.

Action Items:

  • Sync with David regarding which traffic engine will be implemented and what remaining subtasks need to be created/assigned surrounding the two traffic stories.
  • (Due Mar 8 latest) complete action items created from Release 2 grading feedback

Clone this wiki locally