Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • I information
  • Project information
    • Project information
    • Activity
    • Members
  • Analytics
    • Analytics
    • Value stream
  • Wiki
    • Wiki
  • Activity
Collapse sidebar

webGo Information wiki

  • webGo
  • information
  • Wiki
  • Gomenu
  • experimental installation for byod

Last edited by Martin Lam May 25, 2020
Page history

experimental installation for byod

Experimental installation for BYOD

Key Experiments

  • Azure blob storage
  • Microservice on goMenu
  • Symlink
  • X-Request-ID

Azure blob storage

Main usages

  • Host the static files for the cloud BYOD ordering.
  • Synchronize the static files to all shop servers which reduce the time of the manual remote update.
  • Upload the converted menu JSON to blob for cloud BYOD ordering.

I used AzCopy to handle the upload and download task. I wrote some batch commands and deployed them to all KABU shops. You can reach me or just remote to any KABU shop if you are interested in the advantage of updating static files without remoting a high number of shops.

Microservice on goMenu

Due to a good experience in modulization for UC RARe. I revamped the goMenu server to modulized goMenu-service and call-service. And added BYOD, BYOD-table-service, and print-service for the goOrder features. I planned to integrate these versions of goMenu-service with RARe. I hope it can break the wasting of RARe-vs-KABU in the past years.

Symlink

I found a useful method called symlink which suite for our deployment which needs to sharing some static files like config, images, etc between serval program. You can take a look at this guide and the list.

X-Request-ID

To add the ability for tracing the same HTTP request through log entries.

What the problem in the past? Usually your logs look something like this:

[07/Nov/2018:15:48:11 +0000] User sign-up: starting request validation
[07/Nov/2018:15:48:11 +0000] User sign-up: starting request validation
[07/Nov/2018:15:48:12 +0000] User sign-up: request validation success
[07/Nov/2018:15:48:13 +0000] User sign-up: request validation failed. Reason:
...

Here, log entries are mixed up and there is no way to determine which of them belong to the same request. While you would probably prefer to see something like this:

[07/Nov/2018:15:48:11 +0000] [rid:550e8400-e29b-41d4-a716-446655440000] User sign-up: starting request validation
[07/Nov/2018:15:48:11 +0000] [rid:340b4357-c11d-31d4-b439-329584783999] User sign-up: starting request validation
[07/Nov/2018:15:48:12 +0000] [rid:550e8400-e29b-41d4-a716-446655440000] User sign-up: request validation success
[07/Nov/2018:15:48:13 +0000] [rid:340b4357-c11d-31d4-b439-329584783999] User sign-up: request validation failed. Reason:
...

Notice the [rid:*] part that contains request identifiers here. These identifiers will allow you to filter log entries that belong to the same request. Moreover, if your application is composed of microservices communicating with each other over HTTP, request identifiers may be sent in an HTTP header and used for tracing request chains across logs generated by all microservices on the chain.

What's next?

Centralized logging and monitoring with open-source ELK stack.

Clone repository
  • goFTP
    • notes
    • released apk version
  • goMenu
    • BYOD flow
    • error code UCR integration
    • experimental installation for byod
    • symlink static files list
    • uat environment
  • goPOS
    • clear test data before new shop opening
    • daily clearance run before all transactions processed tenren
    • daily clearance run before all transactions processed
    • missing handle update payment
  • goPick
    • error code table
  • goQueue
    • Components Version Compatibility
    • Features and Compatibility
    • Released APK Version
View All Pages