Micro Frontends Architecture for OpenMRS

The microfrontends squad had our first meeting yesterday. Present were myself, @jdick, @fali (ampath), @bistenes (PIH), and @angshuonline (Bahmni). If you are part of a group that was not represented in the meeting and would like to be, feel free to post here or DM me. Here are some meeting notes:

  • We are going to start merging pull requests in https://github.com/openmrs/openmrs-rfc-frontend. Merging will happen when 3 members of the microfrontends squad approve the PR. When an RFC is merged, that means “we intend to build this.” PR #1 is the first one we’re going to discuss and then merge.
  • We are starting work on a new Java module that will serve the SPA for future OpenMRS frontend code. This project will serve the HTML file for the SPA described in https://github.com/openmrs/openmrs-rfc-frontend/pulls/1. The repo is https://github.com/openmrs/openmrs-module-spa, and I just submitted the first PR.
  • We are using the #microfrontends channel in the OpenMRS Slack workspace as a communication point for the microfrontends squad.
  • The microfrontends squad is going to meet weekly. We will record meetings and upload them to be viewed by anyone in the community.
  • Our next meeting will be demoing our distributions to each other, to gain familiarity with what is out there and what commonalities there are.
  • We plan on deploying our code early and often to a test environment, so that everyone can see what we’re doing and the progress we make.
  • Questions that we discussed that are still open: “To what level will distributions share code? Entire features? Widgets within a feature?” “Does a shared navigation make sense?” “Do we first get all of the existing distributions using the SPA, and then slowly cannibalize them? Or do we start totally from scratch?”

Thanks @joeldenning for giving us an update. :slight_smile:

  • Are the microfrontends squad meetings publicly available for any community member to join?

  • Do you plan to share the slack communication with the rest of the community who are not on slack?

  • Do you think we should create a JIRA project for this module?

Hey Daniel,

  • Meetings with lots of people silently listening as I talk are pretty uncomfortable for me and hard for me to act naturally in. With the microfrontends squad we’re trying to build some momentum and teamwork which can be tougher if there is a new group each week with lots of people jumping into the conversation. I’m working on getting used to a dozen or so lurkers in phone calls :grinning:. We are trying to be as transparent as possible in our efforts, and will be using this Talk thread to provide updates. I’m open to reconsidering opening up each of the meetings to the whole community – but the last few like that have just been pretty stressful for me. I’m leaning towards just uploading the recordings here after each meeting.
  • Yeah I would like to share slack communication with everyone – is there a way that people have done that in the past without just copy/pasting large swaths of instant messages into a thread on Talk? Slack conversations have threads within the conversation and are hard to just copy/paste.
  • I don’t think a JIRA project would be helpful for us at this stage of the project. We’re still mostly just in discussions. JIRA might become helpful at a later stage of it, though.
1 Like

Hi @joeldenning and others, I just peeked at Talk looking to see if there were updates, or if there was a way I could follow along from a distance. It seems like this thread is the place to look, but there aren’t really regular updates.

Depending on the cadence of the actual work, I would love to see some kind of sharing every couple weeks (e.g. the frequency of a typical sprint showcase). And I’m personally not going to listen to call recordings, just for lack of time.

For now that could just be posting a few bullet points summarizing what happened, what the focus is for the next couple weeks, and highlighting any open questions where opinions from outside the core group might be helpful. Eventually it could be actual demos.

(Again, no need to cater to me specifically, I’m just interested to follow along, and don’t feel like there’s any way I can do so.)


@darius thanks for the reminder - I was on vacation for a week or so, but putting updates here is important and something that slipped the last few weeks. We’ve got some good updates from the microfrontends squad for everyone:

The two recorded meetings are available at that link only for 30 days. We’re looking for a place to host them permanently so they aren’t lost. If anybody wants to take that and make it happen, it would be appreciated.

Next steps:

  • We plan on building a new login page within the SPA.
  • After that, we tentatively are planning on trying to tackle Patient Search. If hearing that freaks you out, now is your time to comment :slight_smile:. We don’t have designs yet or anything and are in the early stages. So don’t worry, it’s not too late to change or decide on a direction to go with it.

FYI – I created a mechanism so anyone can join Slack.

1 Like

@burke We haven’t been broadcasting the conference call link for everyone to join, but have been uploading them afterwards and posting a link with our weekly update. I believe that it’s hard to get momentum as a group if meetings are large, or if there are new people every week who ask about topics discussed in previous meetings that they missed. My hope is for the meetings to be effective in coordinating efforts and making decisions - my fear of making it a large meeting is that it would reduce the effectiveness. Additionally, like I posted a few weeks ago, large meetings with a lot of silent observers creates a fair amount of anxiety for me (as the one leading the meeting it freaks me out when I ask a question to a group of 20 and get zero responses, or when I talk for a couple minutes with no comments from others and feel like I’m just talking to myself) and makes it hard for me to act naturally in them.

I’m open to being overruled on this one, but that ^ is my preference. Our weekly meetings are becoming more and more effective as we gel as a squad, and I would prefer not to have lots of new participants each week that might jeopardize that. If we’re missing representation from a group that would like to be involved, let’s have them join the microfrontends squad on an ongoing and regular basis :grinning:


Update from the microfrontends squad meeting 2019-06-06:

  • Link to call: https://iu.mediaspace.kaltura.com/media/Microfrontend+Meeting+2019-06-06/1_3io9ctny
  • Meeting agenda and notes: https://notes.openmrs.org/microfrontends_2019-06-06
  • @bistenes gave us an update on our plan for those who want to serve through tomcat the javascript assets used in the import map. After consultation with others at PIH, myself, and @aojwang, Brandon will be authoring a java module that will allow for hosting javascript assets by adding them to application_data
  • @fali gave us an update on the new login page that we’ve been working on. She and I pair programmed part of it and ran into some hiccups with the latest master branch of openmrs-core and the REST module
  • I gave an update about a conversation I had with @gschmidt regarding how the microfrontends squad should collaborate with Greg and other designers. We decided that we’re going to create a JIRA project or board and use that to communicate the status of design and development efforts. I need to follow up with Greg on this and make sure we get the collaboration going with this new login page.
  • @jdick gave an update on the Hackathon that is planned for a couple weeks from now in Kenya.
  • We have created a new github repo https://github.com/openmrs/openmrs-esm-login for the new login page.
  • We are starting on documentation for microfrontends. The documentation will be in OpenMRS wiki and will have its own project page. The wiki will be used for documentation, and the RFC (https://github.com/openmrs/openmrs-rfc-frontend) will be used for our decision making process. Right now our documentation isn’t yet on OpenMRS wiki but we’ll be moving it there in the next couple days. You can find it here: https://github.com/openmrs/openmrs-esm-devtools/pull/3 (the documentation is incomplete and doesn’t cover a lot of stuff, but it’s a start)
  • Our live demo of our code is at https://openmrs-spa.org. Right now there’s not much to see but in the next week or two there will be specific and demo-able things that we will link to and show.
1 Like

Thanks @burke for creating that.

Perhaps one way forward to both support the needs of efficiency and productivity for the squad while also ensuring the opportunity for additional involvement from the community would be to have a regularly scheduled public meeting as well.

I’d like to propose that the last Thursday meeting of each month be dedicated to as a public forum meeting. Alternatively, we could use a design forum to accomplish the same.

@joeldenning 2019-06-06: last week and this week’s meeting recordings look the same. Was it a typo? :slight_smile:

@dkayiwa you’re talking about my post from a week ago? Not the one from today? Regarding the two links in last week’s post - yes they look like the same link, although that’s the link that @jdick posted two weeks in a row. Perhaps the old one was replaced? @jdick can you comment?

Sorry about that, here is the correct link: https://iu.zoom.us/recording/share/FhQcA1_I1fbwA0tln233xbQ0k8QdzHeEHY3KlNvzKR2wIumekTziMw

New article on micro frontends https://martinfowler.com/articles/micro-frontends.html

1 Like

Thanks for the pointer! :slight_smile:

Dear All,

Joel has added three new proposals to the RFC regarding style guide, custom components, and design libraries.

There are lively discussions going on in each proposal and we encourage everyone in the community to take some time to review and contribute.

Proposal: OpenMRS Styleguide #8 https://github.com/openmrs/openmrs-rfc-frontend/pull/8

Proposal: Styleguide Javascript Components #9 https://github.com/openmrs/openmrs-rfc-frontend/pull/9

Proposal: OpenMRS Styleguide and Design Libraries #10 https://github.com/openmrs/openmrs-rfc-frontend/pull/10

Please don’t hesitate to ask if you have questions on the RFC process. For comments on specific proposals, we encourage you to post your comments directly into the RFC Proposal on github.




Thanks @jdick for this information. :slight_smile:

Since there is a lot going on there, which some people may not have time to follow, can we bring out a few things here to get their input? An example is the exchange that i have seen for creating and maintaining our custom style guide that new developers have to learn vs one that is maintained by someone else like Bootstrap which new developers already are familiar with from other non openmrs projects.

Daniel, given that the current conversations represent ongoing discussions it may be pre-mature to post a summary of what’s been said. In the current process, once three members of the squad approve, the proposal will be merged. Perhaps, once we have approval from the squad, a summary could be posted of the decision made for that particular proposal so that the community is aware. We could then wait an additional 24 hours following the post to ensure there are no final contributions to the discussion. I would still encourage followup discussion to take place on github.

I just posted this on the Slack Channel:

Dear Team Members: I am here to support project management related activities in the group (where applicable) especially communications between the group and the broader OMRS community. I thought I should take this opportunity to put my hand up . @jdick @joeldenning @Gregory. I can work the the team to do the following:

a) Channel important conversation points to be shared with the community

b) support documentation of ongoing activities

c) provide guidance on some of the standards and norms that we have adopted for the creation of pages, content etc., facilitate/coordinate meetings, calls etc with the broader community.

I have noted that there are weekly calls internally, and there has been a suggestion to do one community call once a month. Are there any other project governance structure you have agreed on so far?

As a start, I would like to collate some minutes of the meetings that have been conducted thus far as part of the wiki pages for this project, where would I find that information?

If the team has other activities they would need support, please do let me know.

Hi @c.antwi,

We’d love you to help us out.

I have noted that there are weekly calls internally, and there has been a suggestion to do one community call once a month. Are there any other project governance structure you have agreed on so far?

Yes, our project governance structure is described in https://github.com/openmrs/openmrs-rfc-frontend.

I would like to collate some minutes of the meetings that have been conducted thus far as part of the wiki pages for this project, where would I find that information?

This Talk thread has all the links in previous posts, but here’s a compiled list:

Here’s our wiki link – it’s just a placeholder right now and we’ve got a lot of work to go in making it valuable and good: https://wiki.openmrs.org/display/projects/Frontend+-+SPA+and+Microfrontends?searchId=XKYGPSEJ4. It is listed in the “Active Projects” wiki

And here’s our JIRA project, also new: https://wiki.openmrs.org/display/projects/Frontend+-+SPA+and+Microfrontends

If the team has other activities they would need support, please do let me know.

We are running a hackathon next week in Kenya with a few groups. If you’d like to get involved in that, definitely reach out. Beyond that, we’ve been doing some pair programming within the microfrontends squad and then posting our work to OpenMRS github repos as pull requests. Happy for you or anyone else to get involved however you’d like to.

1 Like

We are having a microfrontends squad meeting tomorrow at 3pm UTC. Anyone is welcome to join, here’s the zoom link: https://om.rs/zoommicrofrontend

1 Like