Real World PlantUML
APIHelperAPIHelperUserUserMealRequestsTableMealRequestsTableMealRequestDetailMealRequestDetailMainMainNearbyUsersMapNearbyUsersMapNearbyUsersFilterNearbyUsersFilterFriendProfileFriendProfileFriendsTableFriendsTableCreateMealRequestCreateMealRequestclick on meal requestPOST cancel_requestupdate meal_requests arrayupdate requests tableclick on "Nearby Users" tabGET nearby_usersdisplay nearby usersclick on user pin on mapGET friend profiledisplay friend profileclick on "invite"POST add_userupdate friends arrayupdate friend tableclick on "Filter" buttonGET nearby_users_with_filterdisplayed filtered nearby users
SEQUENCE DIAGRAM
6067996904652800
UserUserAppAppFoursquareAPIFoursquareAPIServerServerDatabaseDatabasecheck ingps datalist of venuesuser picks a venuemakePostRequest()checkIn()ResultSetalt[login key is correct]HTTP Response(success:true)[else]HTTP Response(success:false)
SEQUENCE DIAGRAM
6078193425448960
:ConfigurableClientList:CacheConfig:ZoneTableSegment(Mapped)seg1:MemorySegment(Mapped)seg2:MemorySegment(Mapped):b10-auth:b10-auth:ConfigurableClientList:CacheConfig:ZoneTableSegment(Mapped)seg1:MemorySegment(Mapped)seg2:MemorySegment(Mapped)new/initial config(datasrc cfg)<<construct>>:ConfigurableClientListconfigure(cfg)<<construct>> (cfg):CacheConfig<<construct>>:ZoneTableSegment(Mapped)isWritable()Segment not writablewhen not resetfalsegetStatus()DataSourceStatus[]subscribe tomemmgr groupcommand frommemmgr(datasrc_name,segmentparam)resetMemorySegment(datasrc_name,READ_ONLY,segmentparam)reset(READ_ONLY,segmentparam)<<construct>>seg1:MemorySegment(Mapped)command frommemmgr(datasrc_name,segmentparam)resetMemorySegment(datasrc_name,READ_ONLY,segmentparam)reset(READ_ONLY,segmentparam)<<destroy>><<construct>>seg2:MemorySegment(Mapped)reload(zonename)getCachedZoneWriter(zone_name)isWritable()Segment not writableas it is READ_ONLYfalseCACHE_NOT_WRITABLE
SEQUENCE DIAGRAM
6081862132826112
BobBobAliceAlice1Authentication Request2Authentication Response15Another authentication Request16Another authentication Response40Yet another authentication Request50Yet another authentication Response
SEQUENCE DIAGRAM
6084542192418816
:ConfigurableClientList:CacheConfig:ZoneTableSegment(Mapped)seg1:MemorySegment(Mapped):ZoneTablela:LoadActionzw:ZoneWriterzd:ZoneDataseg2:MemorySegment(Mapped):b10-memmgr:b10-memmgr:ConfigurableClientList:CacheConfig:ZoneTableSegment(Mapped)seg1:MemorySegment(Mapped)seg2:MemorySegment(Mapped):ZoneTablela:LoadActionzw:ZoneWriterzd:ZoneDatanew/initial config(datasrc cfg)<<construct>>:ConfigurableClientListconfigure(cfg)<<construct>> (cfg):CacheConfig<<construct>>:ZoneTableSegment(Mapped)isWritable()Segment not writablewhen not resetfalsegetStatus()DataSourceStatus[]loop[for each datasrc with mapped segment]resetMemorySegment(datasrc_name,READ_WRITE,segmentparam)reset(READ_WRITE,segmentparam)<<construct>>seg1:MemorySegment(Mapped)<<construct>>:ZoneTablegetZoneTableAccessor(datasrc_name,cache=true)ZoneTableAccessorloop[for each zone given by ZoneTableIterator]getCachedZoneWriter(zone_name)getLoadAction()<<construct>>la:LoadActionla<<construct>> (la)zw:ZoneWriterzwload()(funcall)<<construct>> via helperszd:ZoneDatazdinstall()addZone(zd)NULL (no old data)command tomodules(datasrc_name,segmentparam)ack from allmodulesresetMemorySegment(datasrc_name,READ_WRITE,segmentparam)reset(READ_WRITE,segmentparam)<<destroy>><<construct>>seg2:MemorySegment(Mapped)load zonefor each zonegiven byZoneTableIterator
SEQUENCE DIAGRAM
6087763954761728
Transform Jobs Workers (Successful Block Copy or FFmpeg transcoding)OrchestraOrchestraStorageStorageTransformTransformStartup (celeryd -Q queue_name)<< get next transform job from queue >><< next transform job is ... >>concurrency_valuejobs can be threatedsimultaneously (multithreading)alt[if job encoder_name is 'copy']Launch new block copy<< read input media from medias path >><< read block 1/N from input media >><< write block 1/N to output media >><< update job status & statistics ... >><< read block 2/N from input media >><< write block 2/N to output media >><< read block N/N from input media >><< write block N/N to output media >><< end of file >><< update job status & statistics ... >>[job encoder_name is 'ffmpeg' or 'dashcast']Launch new FFmpeg / DashCast instance<< read input media from medias path >><< FFmpeg / DashCast read input media >><< FFmpeg / DashCast write output media >><< update job status & statistics ... >><< FFmpeg / DashCast read input media >><< FFmpeg / DashCast write output media >><< FFmpeg / DashCast read input media >><< FFmpeg / DashCast write output media >><< end of file >><< update job status & statistics ... >>POST /transform/callback {"job_id": "<uuid_of_job>", "status": "SUCCESS"}Set media status=READY into MongoDBOK 200{"status": 200, value="Your work is much appreciated, thanks !"}
SEQUENCE DIAGRAM
6120602737836032
AliceAliceBobBobAuthentication RequestAuthentication ResponseAnother authentication Requestanother authentication Response
SEQUENCE DIAGRAM
6121211817885696
UserUserAppAppServerServerDatabaseDatabaseregistermakePostRequest()registerNewUser()ResultSetalt[email is unique]HTTP Response(success:true)[else]HTTP Response(success:false)
SEQUENCE DIAGRAM
6129861345148928
ClassAClassAClassBClassBClassCClassCClassDClassDWe do outside-in if westart with ClassAWe do inside-out if westart with ClassD
SEQUENCE DIAGRAM
6135265487749120
User Pulls newest changes of documentsUserUserPullClientPullClientPsychicOctoRobotServerPsychicOctoRobotServerGitServerGitServerNode.js server which serves thewebpages requested by the user.requests page forpulling new revisionsweb page forPullClientThe PullClient is aJavascript client made of js-gitand our code bundled with browserifyreads local "git"directory to checkfor repositoriespresentDisplays documentsthat are trackedin repositories locallyselects documentrepository to pullalt[Contact GitServer Directly]Requests new revisions for repositoryNew revisions for repository[get updates through PsychicOctoRobotServer]Sends request new revisions of repoRequests new revisions for repositoryNew revisions for repositoryNew revisions for repositoryDisplays message notifying user of success/failure
SEQUENCE DIAGRAM
6136375468359680
UserUserAppAppServerServerDatabaseDatabasecomment on reviewmakePostRequest()putComment()ResultSetalt[login key is correct]alt[review is found]HTTP Response(success:true)[else]HTTP Response(success:false)[else]HTTP Response(success:false)
SEQUENCE DIAGRAM
6138859167416320
AliceAliceBobBobAuthentication RequestAuthentication Response
SEQUENCE DIAGRAM
6163087212150784
audio_rxtx Interaction DiagramReceiver Shutdownprocprocsendersenderreceiverreceiverloop[Ongoing Transmission]1/audio2terminate3stop playout4/pause5shutdown6stop sending audio7start offering audioloop8/offer(no receiver available)
SEQUENCE DIAGRAM
6168782875656192
MerchantMerchantSEQRSEQRSEQR AppSEQR AppsendInvoice(unique reference)getPaymentStatusISSUEDask for invoice at point of sale or using referenceretry until you get SUCCESSpayment (with uniqe reference)getPaymentStatusPAIDPayment cleared!Done (show receipt)Happy!
SEQUENCE DIAGRAM
6170332687761408
Application WebServeur PlayUtilisateurUtilisateur«Contrôleur formulaire»formSign.js«Contrôleur formulaire»formSign.js«Contrôleur formulaire»Sign.java«Contrôleur formulaire»Sign.java«Générateur de mot de passe»TemporaryPassword.java«Générateur de mot de passe»TemporaryPassword.java«Email»Mails.java«Email»Mails.javasubmitSignForgotPassword()getParameter()result = checkFields()alt[result]formForgotPassword(email)result = checkFields()alt[result]User user = User.getUser(email)alt[user != null]generateTemporaryPassword()return tmpPassworduser.password = tmpPassworduser.save();lostPassword(user)renderJSON(0)display information[user == null]renderJSON(1)display error[!result]renderJSON(1)display error[!result]display error
SEQUENCE DIAGRAM
6181621606645760
Utilisateur AUtilisateur ANavigateurNavigateurServeur HTTPServeur HTTPUtilisateur BUtilisateur BQGis DektopQGis DektopQGis ServerQGis ServerPréparation desfichiers .qgs et .tplLe fichier .qgsest intégré dansla configuration deQgis ServerFormulaireDemande d'un flux WMSAffichage du flux WMSFourniture d'uneemprise géographique(POST)Commandes PythonFourniture de la carteau format pdfFourniture dufichier résultatAffichage de la carte
SEQUENCE DIAGRAM
6188678506348544
UserUserVersionManagerVersionManagerObjectManagerObjectManagerNodeNodeClientClientVersionHandlerVersionHandlerVersionHistoryVersionHistoryrestore($removeExisting, $version, $absPath)hasPendingChanges()restore($removeExisting, $version, $absPath)setDirty()restoreItem($removeExisting, $version, $absPath)restoreItemgetCachedNode()VersionHistorynotifyHistoryChanged()
SEQUENCE DIAGRAM
6192602227408896
UserUserAABBCCdo work<< create request >>do workwork donerequested createddone
SEQUENCE DIAGRAM
6196444344090624
UserUserFirst ClassFirst ClassSecond ClassSecond ClassLast ClassLast ClassDoWork
SEQUENCE DIAGRAM
6197337160417280
AliceAliceBobBobInitialisationAuthentication RequestAuthentication ResponseRepetitionAnother authentication Requestanother authentication Response
SEQUENCE DIAGRAM
6215863770284032
UserUserAppAppServerServerDatabaseDatabaseget all comments for reviewmakeGetRequest()getCommentsForReview()ResultSetalt[review is found]HTTP Response(success:true, data)[else]HTTP Response(success:false)
SEQUENCE DIAGRAM
6221810420940800